1의 보수와 2의 보수
2022. 9. 8. 06:00ㆍStudy/Programming
반응형
일상생활에서 사용하는 숫자는 10진법으로 되어있다.
0~9까지 10개의 숫자를 사용하며 10을 단위로 숫자가 하나 올라간다.
컴퓨터는 0과 1로 구성된 2진법을 사용하기 때문에 10진법으로된 숫자를 2진법으로 바꿔야한다.
8개의 비트로 숫자를 표현하는 경우
첫번째 비트가 부호를 표시하고 나머지 비트가 숫자를 나타낸다.
부호 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
각 자리에 0 또는 1이 입력되는데 각 자리가 의미하는 숫자는 오른쪽부터 1, 그리고 2배씩 늘어난다.
3을 표현하기 위해서 오른쪽 2자리가 11으로 표시되며 나머지는 0으로 표시된다. (2+1 = 3)
이렇게 10진수를 2진수로 바꿀 수 있다.
숫자에는 +인 양수와 -인 음수가 존재하는데 이때 음수를 표현하는 방법은 부호를 반대로 하는 것이다.
0이 양수, 1이 음수이다.
그렇다면 3을 나타내는 0000 0011에서 첫번째 비트만 바꾸어 -3을 표현하기 위해 1000 0011이라고 하면 안된다.
그 이유는 컴퓨터에서 연산을 하는 경우 3+(-3)=0이 나와야 하지만 결과는 1000 0101인 -5가 나온다.
이를 위해 1의 보수를 사용한다.
1의 보수를 만들기위해 0과 1을 바꾸어 준다음에 1을 더해준다.
0000 0011 -> 1111 1100 -> 1111 1101 (-3)
덧셈을 하는 경우
0000 0011
1111 1101
0000 0000(=)이 나온다.
반응형
'Study > Programming' 카테고리의 다른 글
Git 버전 확인하기 (0) | 2022.09.13 |
---|---|
1부터 n까지의 합을 구하는 프로그램 (C언어) (0) | 2022.09.12 |
큐, 이동큐, 원형큐의 차이변수들의 의미 (0) | 2022.09.07 |
행우선 열우선 배열 (0) | 2022.09.06 |
개발자 로드맵이 필요하다(with JAVA) (0) | 2022.07.29 |