java吧 关注:1,266,742贴子:12,769,839
  • 20回复贴,共1
6是正数,在二进制中,正数的反码,补码都是其本身,为什么会是-7?
6以8字节算,为0000-0000 0000-0000 0000-0000 0000-0110,
算法1,先取反码:1111-1111 1111-1111 1111-1111 1111-1001(为负数),
因为计算机储存负数用补码来储存,所以补码是1000-0000 0000-0000 0000-0000 0000-0111,
所以结果是-7,这不是与正数的反码,补码是其本身相矛盾吗?


IP属地:湖北1楼2016-11-01 13:46回复
    ~(-6)
    原码:1000-0000 0000-0000 0000-0000 0000-0110
    反码:1111-1111 1111-1111 1111-1111 1111-1001
    补码:1000-0000 0000-0000 0000-0000 0000-0111,
    结果为-7


    IP属地:湖北2楼2016-11-01 13:47
    收起回复
      2025-06-29 00:00:52
      广告
      谁能帮忙解释下!


      IP属地:湖北3楼2016-11-01 13:48
      回复
        没有人吗?


        IP属地:湖北4楼2016-11-01 13:56
        回复
          上述-7,到底是属于~6取反码的结果还是取补码的结果?毕竟存储在计算机是以补码形式储存的。


          IP属地:湖北6楼2016-11-01 14:39
          回复
            ~(-6)
            原码:1000-0000 0000-0000 0000-0000 0000-0110
            反码:1111-1111 1111-1111 1111-1111 1111-1001
            补码:1111-1111 1111-1111 1111-1111 1111-1010,
            上面的修正下!


            IP属地:湖北7楼2016-11-01 14:40
            回复
              ~(-6)=5


              IP属地:湖北10楼2016-11-01 14:42
              收起回复
                看我随手写一写就是整整的十五个字


                IP属地:广东来自Android客户端11楼2016-11-01 14:49
                回复
                  2025-06-28 23:54:52
                  广告
                  -6
                  原码:1000-0000 0000-0000 0000-0000 0000-0110
                  反码:1111-1111 1111-1111 1111-1111 1111-1001
                  补码:1111-1111 1111-1111 1111-1111 1111-1010
                  ~(-6)就是-6的补码取反
                  0000-0000 0000-0000 0000-0000 0000-0101就是5


                  IP属地:河南来自Android客户端12楼2016-11-01 15:32
                  回复
                    楼主是反码和取反~搞混淆了


                    IP属地:河南来自Android客户端13楼2016-11-01 15:35
                    回复
                      还有,8个字节应该是64位二进制数


                      IP属地:河南来自Android客户端14楼2016-11-01 15:44
                      回复