2010-12-29 2 views
0

내가이 그림을 이해하려고 노력 중이 야하지만 난 이해하지 못하는 부분이 있습니다정수에 대한 이원 표현 이해에 대한 도움?

    • 왜 추가 않습니다 "하지만 컴퓨터는 음수 거꾸로 계산했다" 이진수 앞에 1을 쓰면 컴퓨터가 거꾸로 계산됩니다.
  • "비트를 뒤집고 1을 더하십시오!"

    • 이것은 무엇을 의미합니까?

woops : http://csillustrated.berkeley.edu/PDFs/integer-representations.pdf

+0

검색 항목 : wiki 2 's complement –

답변

2

이 니 게이트시킨다. 다음은 이진수로 표현 된 -4에서 4까지의 숫자입니다.

4 0000 0100 
3 0000 0011 
2 0000 0010 
1 0000 0001 
0 0000 0000 
-1 1111 1111 
-2 1111 1110 
-3 1111 1101 
-4 1111 1100 

그래서 1에서 -1로 가고 싶습니다. 우리는 먼저 우리가 추가 한

1 0000 0001 
    flip bits 
----------- 
    1111 1110 

의 모든 비트를 플립 1 :

1111 1110 
    +  1 
----------- 
    1111 1111 

우리는 지금이 -1.

1

나는 일러스트가 보이지 않지만 아마도 2의 보수 표현에 대해 이야기하고있을 것입니다. (http://en.wikipedia.org/wiki/Two's_complement)

  1. 왜 1 전면 컴퓨터가 거꾸로 계산하는 의미를 부가 하는가?

    운반 방법으로 인해 FFFFFFFFF + 1 == 00 - 1 == FFFFFFFF입니다. 첫 번째 비트를 포함하여 모든 비트가 뒤집 힙니다. 음수를 1 비트 (80000000 - FFFFFFFF)로 시작하는 음수로 간단하게 정의하면 자연스러운 오버플로가있는 더하기 유니폼 동작을 얻을 수 있습니다.

  2. 플립 비트 및 추가 1 : 2의 보수에서,이 예에 의해 표시 될 수있다 쉬운 다수에게

    ~x+1 == -x; // always true