공부중

음 10진수를 2진수로, 음 2진수를 10진수로

또돌근 2024. 2. 21. 17:27
반응형

비트연산문제 중 진수간 변환에서 음수에서 자꾸 헷갈려서 기억차원에서 내가 이해하기 편하게 적음

 

< 10진수 (-3) 을 2진수로 >

1. -3 에서 부호를 뺀 절대값(3) 을 2진수로 만듦 -> .....0011

2. 비트반전 -> 1111......1100

3. 1을 더함(0001) -> 1111.......1101

       ==> -3은 2진수로 1111 1101 이다. (1 byte = 8 bit기준)

 

 

< 2진수 (1111 1101) 을 10진수로 >

1. 비트반전 -> 0000 0010

2. 1을 더함(0001) -> 0000 0011

3. 2의 제곱을 더해서 10진수로 만듦{ (1*1) + (1*2) } -> 3

4. 2진수에서 앞이 1111 이었으므로 음수. ( - ) 부호를 붙여줌 -> -3

        ==> 1111 1101은 10진수로 -3 이다.

 

※추가

< 2진수 (1111 1111 1111 0100) 을 10진수로 >

1. 비트반전 -> 0000 0000 0000 1011

2. 1을 더함(0001) -> 0000 0000 0000 1100

3. 2의 제곱을 더해서 10진수로 만듦 { (0*1) + (0*2) + (1*2*2) + (1*2*2*2)  } -> 12

4. 2진수에서 앞이 1111 이었으므로 음수. ( - ) 부호를 붙여줌 -> -12

       ==> .... 1111 0100 은 10진수로 -12 이다.

 

 

10진수(절대값)를 2진수로 변환하는 방법

10진수의 숫자를 2로 몫이 1이 될때까지 계속 2로 나눈다. 2로 나눌 때마다 나머지를 2진수의 제일 오른쪽에서부터 채워넣는다. 그리고 몫이 1이 되면 나머지들로 이뤄진 숫자의 가장 왼쪽에 넣는다.

<10진수 (12) 를 2진수로>

12%2 = 몫 6 나머지 0

6%2 = 몫 3 나머지 0

3%2 = 몫 1 나머지 1

  => 10진수(12)를 2진수로 (1100)이다.

 

<10진수 (79)를 2진수로>

79%2 = 몫 39 나머지 1

39%2 = 몫 19 나머지 1

19%2 = 몫 9 나머지 1

9%2 = 몫 4 나머지 1

4%2 = 몫 2 나머지 0

2%2 = 몫 1 나머지 0

  => 10진수(79)를 2진수로 (1001111)이다. 

 

 

반응형