3.7 이진수

programming/c++ 2019. 4. 22. 11:51

이진수 


1
10 = 2^1*1 + 2^0*0 = 2
11 = 2^1*1 + 2^0*1 = 3

이진수에서 1 더하는 법 

   1
   11
+   1
---------
 100

2가 되면 자릿수를 올려준다. 


2진수 10진수로 변환하기 

7654 3210
0101 1110

2^7*0 + 2^6*1 + 2^5*0 + 2^4*1 + 2^3*1 + 2^2*1 + 2^1*1 + 2^0*0 

= 128*0 + 64*1 + 32*0 + 16*1 + 8*1 + 4*1 + 2*1 + 1*0

= 64 + 16 + 8 + 4 + 2

= 94


10진수 2진수로 

148 

148 / 2 = 74 r0 ( r = remainder ) 

74  / 2 = 37 r0

37  / 2 = 18 r1

18  / 2 = 9  r0

9    / 2 = 4  r1

4    / 2 = 2  r0

2    / 2 = 1  r0

1    / 2 = 0  r1

1001 0100


음의 정수 표현하는 방법 

-5

1. 우선 5를 이진수로 표현한다. 
0000 0101

2. 보수를 취한다. (complement)
1111 1010

3. 1을 더한다. 
1111 1011


signed(부호 정수) vs unsigned(무부호 정수) 

signed를 이진수로 표현할 때는 맨 앞에 숫자가 음수인지 양수인지를 결정한다.
unsigned를 이진수로 표현할 때는 아니다. 

(signed) int 부호정수/ 음의 정수(negative integer), 0, 양의 정수(positive integer)
unsigned int 무부호 정수/ 0, 양의 정수

'programming > c++' 카테고리의 다른 글

3.9 비트 플래그, 비트 마스크  (0) 2019.04.22
3.8 비트단위 연산자  (0) 2019.04.22
3.6 논리 연산자  (0) 2019.04.22
3.5 관계 연산자(부등호)  (0) 2019.04.19
3.4 sizeof, comma operator, conditional operator  (0) 2019.04.19
Posted by 도이(doi)
,