本帖最后由 张慧 于 2013-8-29 09:13 编辑
-7>>>1的一个过程:
-7的二进制表示:1000 0000 0000 0000 0000 0000 0000 0111
-7在进行无符号右移时首先会先取补码,
反码的补码就是原码取反加一,即1111 1111 1111 1111 1111 1111 1111 1001
之后再右移一位变为:0111 1111 1111 1111 1111 1111 1111 1100
-7>>1的一个过程:
-7的二进制表示:1000 0000 0000 0000 0000 0000 0000 0111
-7在进行无符号右移时首先会先取补码,
反码的补码就是原码取反加一,即1111 1111 1111 1111 1111 1111 1111 1001
之后再右移一位变为:0111 1111 1111 1111 1111 1111 1111 1100
然后再保留符号位再去反 即1000 0000 0000 0000 0000 0000 0000 0011
再加一:1000 0000 0000 0000 0000 0000 0000 0100(-4)
不是很明白为什么要这么做?
|