2013-03-06 1 views
0

바이너리 추가 연습을하고 오버플로가 발생했습니다. 1010 및 27 시간을 절약하기 위해 01010 및 11011 추가시 5 비트가되어야합니다.바이너리 및 오버플로 추가

덧붙여서 나는 예상되는 37의 대답 인 100101을 얻습니다.

그러나 답은 5 비트 여야하므로, 왼쪽에있는 비트 1을 버리겠습니까? 답변을 작성하지 않았기 때문에 혼란 스럽습니다. 5? 37이 아니라? 00101이 될 것이거나 컴퓨터가 이것을하는 방법 일뿐입니다.

또한 아래의 두 가지 질문이 의미하는 바를 밝힐 수 있습니까?

최상위 비트까지의 캐리 인 값은 얼마입니까?

최상위 비트의 캐리 아웃 값은 얼마입니까?

도움과 설명을 제공해 주시면 감사하겠습니다.

답변

1

만 다음 다섯 비트가있는 경우 예, 이진 (10) + (27)의 대답은 5, 당신은 5 비트에 저장할 수있는 최대 2이기 때문에^5-1 = 31D = 11111b. 0을 포함하여 32 비트 값을 5 비트 변수에 저장할 수 있습니다. 따라서 결과는 37mod32 = 5입니다.

가장 중요한 비트는 가장 높은 값을 갖는 비트이며 사례의 가장 왼쪽 비트입니다. 이 비트는 1 일 경우 십진수 값이 16입니다.

"캐리 비트"는 MSB 옆에있는 비트이며 더 이상 변수 자체에 없습니다. 5 비트 변수에서 "여섯 번째 비트"라고 말하면됩니다. 그것은 초기 값 0이 있습니다

0 01010 
0 11011 + 
--------- 
1 00101 = 

을하지만 결과 값 1. 그래서 당신은 1. 이것은 즉, 이러한 오버 플로우를 감지하는 컴퓨터에서 사용할 수있는」을 실시 ".

자세한 내용이 필요하면 알려주세요.

+0

감사합니다. 정말 잘 설명해 주셨습니다. 감사합니다. – Sim