为什么
navygong
这个作者很懒,什么都没留下…
展开
-
-1“无符号”右移10位后是怎么变成4194303的!
Java中增加了一种“无符号”右移操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0。这一操作符是C或C++中所没有的! 整数-1右移10位后怎么变成4194303的呢?原来,-1在32位计算机内采用补码表示后是:11111111111111111111111111111111,即32个1。再无符号右移10位只剩下22位1,因为高十位全是0,这样就变成1原创 2006-09-05 10:38:00 · 2486 阅读 · 2 评论 -
位操作(~num=-(num+1))
我们都知道单目运算符“~”表示对数的每一位取反,~num = -(num+1)。 如:~5=-6,为什么是-6? 现在的机器大多数都为32位机,所以5的二进制表示是: 00000000 00000000 00000000 00000101 取反后为: 11111111 11111111 11111111 11111010 再转换为10进制: 首原创 2006-07-21 12:28:00 · 1825 阅读 · 0 评论