黑马程序员技术交流社区

标题: java 如何表示负数 . [打印本页]

作者: 徐大鹏    时间: 2012-11-22 20:06
标题: java 如何表示负数 .
任何整数类型都存在负数,那么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。


作者: 许庭洲    时间: 2012-11-23 07:27
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2