<음의 정수 표현하기>
1 바이트로 +5 라는 양의 정수를 표현할 때에는
ㅁㅁㅁㅁㅁㅁㅁㅁ 8개의 자리 중 맨 왼쪽 자리가 부호(+,-)를 표현하는 부분이므로
0 0 0 0 0 1 0 1 (+5)
로 표현하고
1 바이트로 -5 라는 음의 정수를 표현할 때에는
표현된 +5에서 2의 보수법을 적용하여
0 0 0 0 0 1 0 1 (+5) 에서
(1의 보수를 취하고)
1 1 1 1 1 0 1 0
(1을 더한다)
1 1 1 1 1 0 1 1 (-5)
문제1 >
양의 정수 01001111과 00110011은 각각 10진수로 얼마인가?
문제해설1 >
01001111 (2진수) => 64+8+4+2+1 = 79 (10진수)
00110011 (2진수) => 1+2+16+32 = 51 (10진수)
문제2 >
음의 정수 10101001 과 11110000 은 각각 10진수로 얼마인가?
문제해설 2 >
2의 보수 역과정으로 풀 수 있다
10101001 (2진수) => 10101000 (1을 뺀다) => 01010111 (1의 보수를 취함)
01010111(2진수) 은 1+2+4+16+64 = 87 (10진수)
즉 10101001 (2진수) 는 -87 (10진수) 임을 알 수 있다.
마찬가지로 2의 보수 역과정으로 풀 수 있다.
11110000 (2진수) => 11101111 (1을 뺀다) => 00010000 (1의 보수를 취함)
00010000 (2진수) 은 16 (10진수)
즉 11110000 (2진수) 는 -16 (10진수) 임을 알 수 있다.
'c' 카테고리의 다른 글
[c언어/열혈 c프로그래밍] 비트 연산자 (LeftShift, RightShift) (0) | 2023.08.05 |
---|---|
[c언어/열혈 c프로그래밍] 음의 정수 크기 확인하기 (0) | 2023.08.05 |
[c언어/열혈 c프로그래밍] p.83 문제 04-2 <데이터 표현의 이해> (0) | 2023.08.03 |
[c언어/열혈 c프로그래밍] p.82 문제 04-1 <진법의 이해> (0) | 2023.08.03 |
[자료구조]LinearSearch.c 와 BinarySearch.c 의 코드와 시간복잡도 (0) | 2023.03.23 |