위치 기수법: 각 자리의 값은 그 숫자에 밑의 거듭제곱을 곱한 것입니다. 2진수의 자리값은 1, 2, 4, 8, 16, …, 16진수는 1, 16, 256, …이며 A–F는 10–15를 뜻합니다. 8비트 2의 보수에서 가장 왼쪽 비트는 +128이 아니라 −128의 값을 가지며, 이렇게 음수를 저장합니다.
각 숫자에 자리값 곱하기
2·256 + 11·16 + 14·1 = 702
답
0x2BE = 702
예제 2보통
8비트 2의 보수로 −45을 저장하도록 비트를 설정하세요. 부호 없는 수로 읽으면 패턴의 값 U은 얼마입니까?
N = −458 bit
구하는 값: U
힌트 보기
45을 2진수로 쓰고, 모든 비트를 뒤집은 다음 1을 더하세요.
45 = 0010 1101₂.
부호 없는 수로는 패턴이 256 + N과 같습니다.
정답과 단계별 풀이 보기
비트 설정: 각 비트는 2의 거듭제곱(128, 64, …, 1)의 값을 가집니다. 16진수 한 자리는 정확히 네 비트이고, 8비트 2의 보수에서 맨 왼쪽 비트의 값은 −128입니다. 비트 연산은 각 비트 자리를 따로 처리합니다.
반전하고 1 더하기
45 = 0010 1101
반전 후: 1101 0010
+1 → 1101 0011
부호 없는 수로 읽기
1101 0011₂ = 256 − 45 = 211
답
U = 211
예제 3어려움
0111 0001 >> 3의 8비트 결과가 되도록 비트를 설정하세요. 결과의 값 R은 십진수로 얼마입니까?
0111 0001>> 3
구하는 값: R
힌트 보기
3만큼 오른쪽으로 시프트하면 모든 비트가 3칸 오른쪽으로 이동합니다. 오른쪽 끝에서 밀려난 비트는 사라지고 왼쪽에 0이 들어옵니다.
왼쪽에서 오른쪽으로 한 번에 한 비트 자리씩 계산하세요.
결과의 처음 네 비트는 0000입니다.
정답과 단계별 풀이 보기
비트 설정: 각 비트는 2의 거듭제곱(128, 64, …, 1)의 값을 가집니다. 16진수 한 자리는 정확히 네 비트이고, 8비트 2의 보수에서 맨 왼쪽 비트의 값은 −128입니다. 비트 연산은 각 비트 자리를 따로 처리합니다.
비트별로
3만큼 오른쪽으로 시프트하면 모든 비트가 3칸 오른쪽으로 이동합니다. 오른쪽 끝에서 밀려난 비트는 사라지고 왼쪽에 0이 들어옵니다.
0111 0001 >> 3
= 0000 1110
결과의 값
0000 1110₂ = 14
답
R = 14
질문과 답변
진법: 무엇인가요?
일상에서는 10을 기수로 하는 십진법으로 셉니다. 숫자는 0부터 9까지 열 개이고, 각 자리는 오른쪽 자리의 열 배의 값을 가집니다.
352에서 3은 300, 5는 50, 2는 2를 나타냅니다. 오른쪽부터 자리의 값은 1, 10, 100입니다.
진법 문제는 어떻게 단계별로 푸나요?
위치 기수법: 각 자리의 값은 그 숫자에 밑의 거듭제곱을 곱한 것입니다. 2진수의 자리값은 1, 2, 4, 8, 16, …, 16진수는 1, 16, 256, …이며 A–F는 10–15를 뜻합니다. 8비트 2의 보수에서 가장 왼쪽 비트는 +128이 아니라 −128의 값을 가지며, 이렇게 음수를 저장합니다.
진법 연습에서는 무엇을 다루나요?
쉬움: 2진수·16진수를 10진수로
보통: 2의 보수
어려움: 비트, 범위, 메모리
문제마다 값이 새로 바뀌므로 답이 아니라 푸는 방법을 익히게 됩니다. 막혔나요? 먼저 작은 힌트를 열고, 필요할 때만 전체 해설을 보세요.