Post

정수형 자료형

정수형 자료형

음수 표현

양의 정수 128개 (뒤에 7bit만 사용) 0 ~ 127

0 · · · · · · ·

음의 정수 128개 (뒤에 7bit만 사용) -1 ~ -128

1 · · · · · · ·

맨 앞 칸으로 이분해서 양수와 음수를 나누어서 표현한다.
가장 앞에 있는 비트값이 0과 1에 따라 양수와 음수가 정해진다.
이런 맨 앞 칸 bit최상위비트(Most Significant Bit) 라고 한다.



최상위비트(MSB)

컴퓨터는 우리가 1을 입력해도 그대로 1로써 받아들이는 게 아닌, 1이라는 숫자의 Bit값으로 해석한다.
예) 1Bit 값으로 표현한다면

0 0 0 0 0 0 0 1


음수를 표현하는 비트값은 앞에 자리가 1이다.
예) -1Bit 값으로 표현한다면

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는 음수와 양수를 동시에 표현 할 때 사용하지만
기본적으로 깔려있는 전제이기 때문에 굳이 적어주지 않는다.

This post is licensed under CC BY 4.0 by the author.