cuiping43 2016-08-06 02:02 采纳率: 4.2%
浏览 2098

基础问题,为很么java 正0和负0的补码是一样的

-0就是10000000
反码是11111111
补码是+1,为啥变成10000000了?????
还有正0的补码难道不是00000000?

  • 写回答

1条回答

  • threenewbee 2016-08-06 09:12
    关注

    10000000,最高位的1溢出,所以还是00000000
    注意,我们不能抛开数据的存储位数,说某个数的补码。
    比如-1的补码,如果是8位,就是11111111,如果是16位,就是1111111111111111。如果你不说是多少位,那么谈不上补码。
    在16位下,11111111非但不是-1的补码,而且是255的补码,相差十万八千里了。
    回到你的问题,为什么你发现问题了,10000000和00000000不同,因为你忽略了位数,在8位表示下,100000000只能取最低8位。

    评论

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?