2016-12-12 2 views
0

나는 (here)을 읽고 -~xx+1과 같고 ~-xx-1과 같음을 확인했습니다. 그래서 나는 그것을 적어두고 무슨 일이 일어나는지 보려고했지만 잘못된 것을하고 있습니다.어떻게 ~ ~ x와 ~ -x가 작동합니까?

0100 // 4 in binary 
1011 // ~ complement 
0011 // the inverse 

내가 잘못 어디를 가야합니까 :

그러나 -~x에 대한 ~-x === x-1 내가 같은를 얻을 수있는 규칙에 따라됩니다의이 x=4

0100 // 4 in binary, leading 0 for the sign 
1100 // the inverse of the addition 
0011 // ~ complement 

0011=3 보자? 내가 바보가되는거야?

답변

0

확인 문제는 음수 표현입니다. Two's complement 작업을 사용해야하고 올바른 결과를 반환합니다. 그래서 -~x이 동작 같은 : 2의 보수를 사용하는 지금

0100 // 4 (we assume a 4 bit number without taking sign into account) 
1011 // complement which is 11 

과 :

N 비트 수의 2의 보수는 2N에 대한 보완 으로 정의된다; 즉, 2N에서 숫자 을 뺀 결과입니다. 우리는 16에서 11을 빼 때이 경우

N=42^N = 16 그리고 마침내 우리는 x+1을 5 얻을. 우리가 보여 줬어 -~x === x+1