`
chenchh
  • 浏览: 60636 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java整数的二进制表示

阅读更多

    计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,补码=反码+1。在二进制里,是用01来表示正负的,最高位为符号位,最高位为1代表负数,最高位为0代表正数。

    以java中8位的byte为例,最大值为:0111 1111,最小值为1000 0001, 换算成十进制就是128和-127。

    那么根据十进制的数字,我们如何转换为二进制呢?对于正数我们直接转换即可,对于负数则有一个过程。

    以负数-5为例:

    1.先将-5的绝对值转换成二进制,即为0000 0101;

    2.然后求该二进制的反码,即为 1111 1010;

    3.最后将反码加1,即为:1111 1011

分享到:
评论
1 楼 gcedar 2011-11-22  
别瞎说啊,有符号数范围是-128 - 127
哪有128啊
0111 1111 这个数分明是127
1000 0001 是-127 没错
1000 0000 是-128

相关推荐

Global site tag (gtag.js) - Google Analytics