책 내용 질문하기
2권 270p 24번
도서
2021 시나공 정보처리기사 실기
페이지
270
조회수
345
작성일
2021-09-23
작성자
탈퇴*원
첨부파일
a, c = 32, -3
b = a << 2
a >>= 3
c = c << 2
print(a, b, c)
"c"를 구할 때 2의 보수 과정을 거쳐서 구하는 것으로 해설지에도 나와있고
동영상 강의에서도 2의 보수를 거쳐서 c의 값을 구했는데
처음에 문제를 풀 때는
2의 보수로 변환시키지 않고
1000 ..... 0000 0011 = - 3 에서
1000 ..... 0000 1100 = - 12 로 계산했습니다
답은 맞는데 풀이과정이 달라서
2의 보수를 반드시 거쳐야 하는건지 질문드립니다
답변
2021-09-27 09:23:55
안녕하세요 길벗수험서 운영팀입니다.
원칙적으로 음수의 비트 연산에서는 2의 보수로 전환한 후 계산해야 합니다.
몇몇 비트 연산의 경우 일정 조건 하에 보수화를 진행하지 않고 연산해도 동일한 값이 나오는 경우가 있으나,
그와 같은 연산의 결과가 항상 정답이라고 보장할 수 없으므로, 시간의 여유가 없지 않는한 2의 보수화를 진행한 후 결과를 내시는 것을 권해드립니다.
행복한 하루되세요 :)
-
관리자2021-09-27 09:23:55
안녕하세요 길벗수험서 운영팀입니다.
원칙적으로 음수의 비트 연산에서는 2의 보수로 전환한 후 계산해야 합니다.
몇몇 비트 연산의 경우 일정 조건 하에 보수화를 진행하지 않고 연산해도 동일한 값이 나오는 경우가 있으나,
그와 같은 연산의 결과가 항상 정답이라고 보장할 수 없으므로, 시간의 여유가 없지 않는한 2의 보수화를 진행한 후 결과를 내시는 것을 권해드립니다.
행복한 하루되세요 :)