java吧 关注:1,249,878贴子:12,734,065
  • 5回复贴,共1

求指导,新人刚开始学习!!!

只看楼主收藏回复

这个是-124是怎么得到的?
这个-29076又是怎么得到的,哪位高手能指点一下,非常困惑


IP属地:山东1楼2018-01-24 15:16回复
    能解答吗?


    IP属地:山东2楼2018-01-24 15:38
    回复
      java中的int是32位的,正数以原码的形式存储,负数以补码的形式存储。
      java中都是有符号数,首位是1,所以是负数,负数也就是补码,也就是说
      1111 1111 1000 0100是补码
      补码,反码加1后得源码
      转换成源码得0000 0000 0111 1100
      这个数是124,加上符号就是-124
      至于第二个问题,你的图片上画得很清楚啊,就是位移后得到的数。
      和上面一样移2位后,首位是1所以是负数,也就是补码,补码要反码后加1
      反码后:0111000110010011
      加1后,加符号,就是得到的数


      IP属地:广东3楼2018-01-24 16:50
      收起回复
        欢迎加入java,python等等,群聊号码:155437726


        IP属地:陕西来自Android客户端5楼2018-01-25 10:13
        收起回复