10진수와 2진수의 변환

February 15, 2020 · View on GitHub

작성자

tdm1223 rlatjdwo555 Stupid07

10진수 11.625(10)를 2진수로 변환 해보자 :keycap_ten: -> :two:

정수

  1. 수가 0이 될때까지 2로 나눈다.
  2. 나머지를 아래에서 위로 붙여 읽는다.
  3. 해당하는 값이 2진수로 변환된 값이다.
/11%읽는 방향
25...1^
22...1|
21...0|
20...1|

1011(2)

  • Java Code
    int decimal = 11;
    System.out.println(Integer.toBinaryString(decimal)); // 1011
    
  • Cpp Code
    int decimal = 11;
    string binary = "";
    while (decimal>0)
    {
    	if (decimal % 2 == 0)
    	{
    	    binary += '0';
    	}
    	else
    	{
    	    binary += '1';
    	}
    	decimal /= 2;
    }
    reverse(binary.begin(), binary.end());
    cout << binary << endl; // 1011
    

소수

  1. 소수부분이 0이 될때까지 2로 곱하면서 정수 부분을 분리한다.
  2. 분리된 정수부분을 위에서 아래로 붙여 읽는다.
  3. 해당하는 값이 2진수로 변환된 소수값이다.
*읽는 방향0.625
2|1.250
2|0.5
2v1.0

0.101(2)

결과

1011.101(2)

2진수 1011.101(2)를 10진수로 변환 해보자 :two: -> :keycap_ten:

정수

  1. 오른쪽 자리수 부터 2의 0승 ~ N승 까지의 값을 곱한다
  2. 곱해진 값들을 합산하면 10진수 값이 된다.
10진수23222120
2진수1011
10진수8021
합산11

11(10)

  • Java Code
    String binary = "1011";
    System.out.println(Integer.parseInt(binary,2)); // 11
    
  • Cpp Code
    string binary = "1011";
    int decimal = 0;
    
    int expo = 1;
    for (int i = binary.size() - 1; i >= 0; i--)
    {
    	decimal += (binary[i] - '0') * expo;
    	expo *= 2;
    }
    cout << decimal << endl; // 11
    

실수

  1. 왼쪽 자리수 부터 2의 -1승 ~ -N승 까지의 값을 곱한다
  2. 곱해진 값들을 합산하면 10진수 값이 된다.
10진수2-12-22-3
2진수101
10진수0.500.125
합산0.625

0.625(10)