정수형 자료형
음수 표현
양의 정수 128개 (뒤에 7bit만 사용) 0 ~ 127
0 | · | · | · | · | · | · | · |
음의 정수 128개 (뒤에 7bit만 사용) -1 ~ -128
1 | · | · | · | · | · | · | · |
맨 앞 칸으로 이분해서 양수와 음수를 나누어서 표현한다.
가장 앞에 있는 비트값이 0과 1에 따라 양수와 음수가 정해진다.
이런 맨 앞 칸 bit
를 최상위비트(Most Significant Bit) 라고 한다.
최상위비트(MSB)
컴퓨터는 우리가 1을 입력해도 그대로 1로써 받아들이는 게 아닌, 1이라는 숫자의 Bit
값으로 해석한다.
예) 1
을 Bit
값으로 표현한다면
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
음수를 표현하는 비트값은 앞에 자리가 1이다.
예) -1
을 Bit
값으로 표현한다면
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Bit
가장 앞에 있는 숫자를 최상위비트(MSB(most significant bit))라고 한다.
비트 가장 앞자리의 있는 수를 최상위 비트(MSB)라고 하고 이 최상위 비트에 따라 양수
인지 음수
인지가 정해진다.
음수를 다시 생각해보면 예를들어 10에 x를 더해서 0이 되는 수, 여기서 x가 음수라고 할 수 있다.
1
2
10 + (-10) = 0
5 + (-5) = 0
컴퓨터는 우리가 1을 입력한다고 그대로 1로써 받아들이는 게 아닌,
1이라는 숫자가 Bit로 변환되어 컴퓨터에게 입력된다.
그리고 컴퓨터는 그 Bit를 해석한다.
1
2
char c1 = 0;
c1 = 1;
이렇게 컴퓨터에게 입력을 하면 1이란 숫자를 입력하는게 아니라
비트
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
를 컴퓨터에게 입력하고 컴퓨터는 Bit를 해석한 뒤 1이라는 숫자를 출력한 것이다.
또다른 예시로
1
2
char c1 = 0;
c1 = 255;
이런 식을 입력하면 컴퓨터는 곧이곧대로 255라는 숫자를 입력 받은 게 아니라
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
를 입력받은 것이다.
그렇기 때문에 나는 컴퓨터에게 255를 입력했어도
컴퓨터는 이 숫자를 -1로 해석한다.
(비트 (‘1’,’1’,’1’,’1’,’1’,’1’,’1’,’1’)은 -1이다.)
음수 비트 구하는 방법
어떤 양수비트에 특정 음수비트를 더했을 때 0이 되는게 해당 음수비트다.
보수법
대응되는 양수의 비트들을 반전 후, 1을 더한다.
2의 비트 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
+ | ||||||||
-2의 비트 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
ㅤ | = | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1
signed char c1 = 0;
signed
는 음수와 양수를 동시에 표현 할 때 사용하지만
기본적으로 깔려있는 전제이기 때문에 굳이 적어주지 않는다.