Java海阔天空

编程是我的生活,但生活不仅仅是编程。

二进制最简单的运算过程解析


3 & 4

&:同为1结果为1,否则为0
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0100
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000 -> 0

4 | 8
|: 一方为1结果便为1,否则为0
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 1000
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 1100 -> 12


~9
~:取反,0变成1,1变成0 ->要得到最后结果必须再计算补码(反码+1)
0000 0000 0000 0000 0000 0000 0000 1001
---------------------------------------
1111 1111 1111 1111 1111 1111 1111 0110 ->得到反码,下面回算补码(即减1取反)
---------------------------------------
1111 1111 1111 1111 1111 1111 1111 0101 ->-1
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 1010 ->取反结果为10,取反码的时候以1开头,即为负数,所以结果为-10

下面是-10在java中的表示:
0000 0000 0000 0000 0000 0000 0000 1010
1111 1111 1111 1111 1111 1111 1111 0101 +1
1111 1111 1111 1111 1111 1111 1111 0110

8 ^ 23
^:异或, 不同为1,相同为0
0000 0000 0000 0000 0000 0000 0000 1000
0000 0000 0000 0000 0000 0000 0001 0111
---------------------------------------
0000 0000 0000 0000 0000 0000 0001 1111 -> 31

4 << 3
<<:左位移,4的二进制向左移动3位,右边补0
0000 0000 0000 0000 0000 0000 0000 0100
---------------------------------------
0000 0000 0000 0000 0000 0000 0010 0000 -> 32

5 >> 9
>>:右位移, 5的二进制向右移动9位,左边补0
0000 0000 0000 0000 0000 0000 0000 0101
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000 -> 0

 

posted on 2010-01-29 17:35 李赞红 阅读(2082) 评论(3)  编辑  收藏

评论

# re: 二进制最简单的运算过程解析 2010-01-30 09:19 Ge,Kunjin

没怎么接触过二进制的计算,关于您的这个讲解我没有看明白?

~9
~:取反,0变成1,1变成0 ->要得到最后结果必须再计算补码(反码+1)
0000 0000 0000 0000 0000 0000 0000 1001 -->9的二进制
---------------------------------------
1111 1111 1111 1111 1111 1111 1111 0110 ->得到反码,下面回算补码(即减1取反)
---------------------------------------
1111 1111 1111 1111 1111 1111 1111 0101 ->-1
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 1010 ->取反结果为10,取反码的时候以1开头,即为负数,所以结果为-10

你上面提到的“要得到最后结果必须再计算补码(反码+1)
”与“->得到反码,下面回算补码(即减1取反)
”矛盾吗?请指教!
  回复  更多评论   

# re: 二进制最简单的运算过程解析 2010-01-30 10:23 李赞红

@Ge,Kunjin
建议你去看看与二进制相关的资料.  回复  更多评论   

# re: 二进制最简单的运算过程解析 2010-01-30 11:42 咖啡妆

混乱!!!不知道你要说啥?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(12)

随笔档案(28)

相册

技术友情博客

搜索

最新评论

阅读排行榜

评论排行榜