이진수
0
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 |