안녕하세요 길벗수험서 운영팀입니다.
2의 보수를 취하는 경우는 아래 두가지 입니다.
1. 음수를 표현하기 위해
2. '2의 보수로 표현된 음수'를 출력을 위해 10진수로 바꾸기 위해
not에서 2의 보수를 수행하는 경우는 대부분 경우 2에 해당합니다.
57쪽에서는 not을 취한 변수 f를 printf문에서 출력된 결과를 보여드리기 위해 2의 보수를 취해 결과를 보여드렸습니다. (여기서는 변수 f는 '2의 보수로 표현된 음수'가 되죠.)
121쪽의 24번 문제에서는 not 연산된 변수가 바로 출력되는 것이 아닌 추가 연산이 있습니다.
a&b의 결과에 not연산한 b를 다시 and연산 하는 과정이 있죠.
만약 이 모든 과정의 결과로 음수가 되었다면(첫 비트가 1) 이후 printf문에서 출력할 때 d는 2의 보수로 변환되어 출력되었어야 할 것입니다.
하지만 해당 연산에서는 첫 비트가 0이어서 '양수'가 되므로 2의 보수화를 수행할 필요가 없죠.
행복한 하루되세요 :)
-
관리자2019-09-25 11:42:33
안녕하세요 길벗수험서 운영팀입니다.
2의 보수를 취하는 경우는 아래 두가지 입니다.
1. 음수를 표현하기 위해
2. '2의 보수로 표현된 음수'를 출력을 위해 10진수로 바꾸기 위해
not에서 2의 보수를 수행하는 경우는 대부분 경우 2에 해당합니다.
57쪽에서는 not을 취한 변수 f를 printf문에서 출력된 결과를 보여드리기 위해 2의 보수를 취해 결과를 보여드렸습니다. (여기서는 변수 f는 '2의 보수로 표현된 음수'가 되죠.)
121쪽의 24번 문제에서는 not 연산된 변수가 바로 출력되는 것이 아닌 추가 연산이 있습니다.
a&b의 결과에 not연산한 b를 다시 and연산 하는 과정이 있죠.
만약 이 모든 과정의 결과로 음수가 되었다면(첫 비트가 1) 이후 printf문에서 출력할 때 d는 2의 보수로 변환되어 출력되었어야 할 것입니다.
하지만 해당 연산에서는 첫 비트가 0이어서 '양수'가 되므로 2의 보수화를 수행할 필요가 없죠.
행복한 하루되세요 :)