java学习之负数的进制

在上一篇内容当中说明了什么是进制,进制存在的原因以及形式,接下来说一下一个比较特殊的进制计算,就是负数的在计算机当中的表示。举个个例子来说

 

6的二进制表示是什么?

0000-0000-0000-0000-0000-0000-0000-0110

那么-6的二进制又是如何计算的呢?

答:就是对-6的二进制取反之后再加1(二进制的1),即得到其补码

一个正数的负值就是正数的二进制最高位补一
-6:1000-0000-0000-0000-0000-0000-0000-0110
对它取反,也就是0变1,1变0,但是最高位符号位除外:
     1111-1111-1111-1111-1111-1111-1111-1001
之后再对这个数加1(二进制的1)这里要注意一点符号位也就是最高位除外,即:
     
     1111-1111-1111-1111-1111-1111-1111-1001
+    0000-0000-0000-0000-0000-0000-0000-0001
--------------------------------------------------------------------
     1111-1111-1111-1111-1111-1111-1111-1010   (这个就是负数在计算机中表示的方式,因为计算机只能做加法不能做减法,只能以补码的形式表示)      

这个便就是负数在计算机中的表示                 

  

知识点拾遗:

正确的理解正负数的补码反码的表示:

  1、正数的补码、反码都是它本身。

  2、负数的反码是除最高位即符号位以外的位取反(0变1,1变0),负数的补码就是在反码的基础上除最高位即符号位以外,然后最后一位加1(二进制的1)  

  3、正0和负0的补码相同

posted @ 2013-09-08 10:10  stark_javac  阅读(216)  评论(0编辑  收藏  举报