A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐大鹏 中级黑马   /  2012-11-22 20:06  /  1524 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

任何整数类型都存在负数,那么java中是如何表示负数的呢。


例如 5 在 计算机中的二进制表示为 0101,那么其负数(-5)怎么表示呢?


通过这个步骤就行:


注意,在做如下操作之前,我们应该非常注意5的二进制表示,它的高位一定要为0,也就是说如果5写成101,那么我们必须先将其表示成0101,这样按位取反的时候高位才会变为1。


将5按位取反,标为 1010, 然后加上1,变为1011,即为-5在计算机中的表示。

反过来,看到1011,第一反应看他的高位,如果高位为1,则肯定是个负数,那么他到底是负几呢,如下操作:将1011按位取反,得到0100,然后加上1,则得到其值0101,为5。则说明1011代表的是-5。


下面再练习两个:


1. 写出101101的十进制表示?

      第一步,取反,010010;

      第二步,加1,010011;

      第三步,计算十进制,1+2+16=19;

      第四步,得出结论:101101 = -19。


2. 写出-24的二进制表示?

     第一步,写出24的二进制表示,011000;

     第二步,取反,100111;

     第三步,加1,101000;

     第四步,得出结论,-24 = 101000。


补码:计算机中,数都以补码的形式存放,正数的补码是其本身,负数的补码是其绝对值取反加1。

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马