Java中位运算,对整数5按位取反怎么算
就是~5怎么算答案是-6,按我的理解是先把5转换成二进制数,然后按位求反,结果得到的答案却不是-6啊。还有按位与,比如5&2怎么算等于0啊,请教高手详细讲解!...
就是~5怎么算答案是-6,按我的理解是先把5转换成二进制数,然后按位求反,结果得到的答案却不是-6啊。还有按位与,比如5&2怎么算等于0啊,请教高手详细讲解!
展开
3个回答
2013-07-19
展开全部
转二进制取反得到的也是-6
你再把它转成10进制数就能看到结果了
5(2) = 101
2(2) = 010
&是安位与,两个都是1才得1
所以上面5和2对应1的位数刚好叉开了,&后得到000,也就是0了
你再把它转成10进制数就能看到结果了
5(2) = 101
2(2) = 010
&是安位与,两个都是1才得1
所以上面5和2对应1的位数刚好叉开了,&后得到000,也就是0了
2013-07-19
展开全部
5:00000101取反:11111010因为数在计算机里是用补码形式存放的...所以要把11111010看做一段补码现在把补码转化为原码,第一位是符号..不用变..先变成反码..减1就可以..11111001再变为原码10000110,即-6 5&25:000001012:00000010与就是各个位做与运算..1&0=00&0=01&1=1结果就是00000000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-19
展开全部
首先确定是8位的二进制..以10为例原码:00001010第一个0仅仅代表这是正数...真正表示10的二进制是后7位...因为是正数..那么反码...补码..都是一样的..即00001010如果是-10的话..首先第一位确定是1..表示是负数..这位是不变的原码是10001010..反码是11110101...补码是11110110在计算机里存放的是补码..11110110
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询