2013-10-15 4 views
1

8 진수 : 0000 1000의 이진 표현을 취합니다. 2의 보수를 사용하여 모든 비트를 전환하고 1을 추가하여 반대를 찾습니다. 1111 1000. 이제 -8 진수에 대한 이진 표현이 있습니다.부호가있는 이진 값을 구별

그러나 이것을 십진수로 -8 또는 248로 해석할지 어떻게 알 수 있습니까?

+2

2의 보수는 사용자가 부호있는 값을 사용하고 있음을 의미합니다. –

답변

1

누군가 이진수를 기록 할 때 대개 서명 된 것인지 서명되지 않은 것인지를 지정합니다. 지정하지 않으면 서명되지 않았다고 가정 할 수 있습니다 (이 경우 248).

0

맨 왼쪽 비트, 최상위 비트 인 부호 비트가 1이면 음수를 나타냅니다.

8 비트를 사용하면 -128에서 127까지 얻을 수 있습니다 (256 가지 값). 따라서 가장 높은 양수는 01111111입니다. 127을 초과 할 수 없습니다.

참고 - 부호와 크기 표현의 부호 비트가 아니더라도 왼쪽 끝에있는 비트는 여전히 부호 비트라고합니다. 그것은 사인 외에 가치를 지니고 있지만 사인을 보여줍니다. wikipedia twos complement
"최상위 비트는 부호의 부호를 결정하며 부호 비트라고도하며 부호 및 크기 표현과 달리 부호 비트에도 가중치가 있습니다."

약간의 접선 - 다음을 추가합니다. 즉, 2s 보완을 신속하게 수행하기위한 축약어로 여기에 예가 있습니다. 2의 보수로 0101을 넣어야한다면 오른쪽에서 첫 번째 1을 유지하십시오. 그런 다음 나머지는 제스처하십시오. 맨 오른쪽에 1을 잡고 나머지는 톡톡 치십시오. 0101이 1011이됩니다. 1011에 반전 된 0101의 비 단축키 방식과 동일하며 1011을 1을 더하는 것과 같습니다. 그리고 1011을 가질 때 하나를 빼고 반전하여 0101을 얻을 수 있습니다. 그리고 1을 반전하여 1을 더할 수 있습니다. 0101을 얻을 수 있습니다. 맨 앞의 첫 번째 1을 잡고 나머지를 손가락으로 튀기는 동일한 기술을 사용할 수도 있습니다. 그러면 다시 0101로 돌아갑니다. 0110을 2 초 보완하고 오른쪽 끝에 10 개를 잡고 1010을 얻으십시오.

당신은 어떻게 2s 보완인지, 어떻게 생각합니까? 숫자가 저장되는 숫자 형식을 알아야합니다. 2의 보수인지 1의 보수인지. 또는 크기 또는 부동 소수점에 서명하십시오. 글쎄, 당신이 그것을 저장했기 때문에 알아야 해! 데이터를 저장할 수 없으며 데이터의 의미를 기억하지 못합니다!

관련 문제