안녕하세요.
264p 문제 10번에 나오는
~a 문제인데요.
제가 아직 이 not 비트를 좀 헷갈려하는데요
필기 공부할 때는 그냥 반대로 뒤집는다 정도로만 알고 있었는데, 막상 풀어보니 2의보수를 취하는 경우도 있더라구요
예를들면 예제에서 a가 2진법으로 10 일때 ~a 는 01 이다 이정도만 알았는데
이런 간단한 예제를 풀때는 2의보수법이 나오지 않았는데 언제 2의 보수법을 사용해야하나요?
270p 26번
d = a & b & ~b 를 풀 때는 2의 보수를 안 쓰더라구요
264p의 문제 10번처럼 2진수를 10진수로 출력할 때 해야하나요?
안녕하세요 길벗수험서 운영팀입니다.
[264p 문제10]
not은 말씀대로 그냥 1을 0으로, 0을 1로 뒤집으면 됩니다.
그런데 문제는 이것을 10진수로 출력하는 경우에 문제가 됩니다.
맨 앞의 양수(0)를 의미했던 부호 비트가 음수(1)로 바뀌면서, 컴퓨터에서는 이 2진수를 음수로 인식하여 10진수로 출력할 때 2의 보수화를 시켜야 하는 상황이 오는 것이죠.
(음수(10진수) 입력 -> 이진화 -> 2의 보수화 -> 음수(2진수) 저장 -> 2의 보수화 -> 음수(10진수) 출력)
[270p 26번]
& 연산 과정 중에 부호 비트가 양수(0)가 되었기 때문에 2의 보수화를 할 필요가 없는 거죠.
행복한 하루되세요 :)
-
관리자2021-04-07 11:15:55
안녕하세요 길벗수험서 운영팀입니다.
[264p 문제10]
not은 말씀대로 그냥 1을 0으로, 0을 1로 뒤집으면 됩니다.
그런데 문제는 이것을 10진수로 출력하는 경우에 문제가 됩니다.
맨 앞의 양수(0)를 의미했던 부호 비트가 음수(1)로 바뀌면서, 컴퓨터에서는 이 2진수를 음수로 인식하여 10진수로 출력할 때 2의 보수화를 시켜야 하는 상황이 오는 것이죠.
(음수(10진수) 입력 -> 이진화 -> 2의 보수화 -> 음수(2진수) 저장 -> 2의 보수화 -> 음수(10진수) 출력)
[270p 26번]
& 연산 과정 중에 부호 비트가 양수(0)가 되었기 때문에 2의 보수화를 할 필요가 없는 거죠.
행복한 하루되세요 :)