负数的二进制表示方法有哪些(负数的二进制表示方法是)
负数的二进制表示方法有哪些(负数的二进制表示方法是),本文通过数据整理汇集了负数的二进制表示方法有哪些(负数的二进制表示方法是)相关信息,下面一起看看。
2011-08-04 11:27:29|类别:VC |标签:|字号,大中小订阅
我们已经知道,在计算机中,所有的数据最后都是用二进制数来表示的。
我们还学习了如何将十进制数转换为二进制数,以及如何将十六进制数转换为二进制数。详见下图。
然而,我们仍然没有学会如何用二进制表示一个负数。
例如,假设有一个int类型的数的值为5,那么我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5到二进制的转换是101,但是int类型的数占了4个字节(32位),所以前面填了一堆零。
现在我想知道,在计算机中-5是如何表示的?
在计算机中,负数是以正值的补数的形式表示的。
什么是补语?我们得从原码和反码开始。
原码:按绝对值换算成二进制数的整数,称为原码。
比如00000000000000000000000000000000000000001就是5的原始代码。
逆码:将二进制数逐位反转,得到的新二进制数称为原二进制数的逆码。
逆向运算是指:原始值为1,得到0;原本是0,得到了1。(1变成0;0到1)
比如:把000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111,每一位反转。
名称:1111111111111111111111111111111111111111111111010是00000000000000000000000000000000001的逆。
逆码是相互的,所以也可以叫做:
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
补码:补码加1称为补码。
也就是说,要得到一个数的补数,首先要得到反码,然后在反码上加1,得到的数叫做补数。
比如:00000000000000000000000000000000000000101的逆码是:111111111111111111111111111111111111111111111111111111111111111。
那么,补语是:
11111111 11111111 11111111 11111010 1=11111111 11111111 11111111 11111011
所以,-5在计算机中表示为:1111111111111111111111111111111111111111。转换成十六进制:0xFFFFFFFB。
再举个例子,我们来看看整数-1在计算机中是怎么表示的。
假设这也是一个int类型,那么:
1.先取1的原代码:0000000000000000000000000000000000000000000001。
2.逆码:11111111111111111111111111111111111111111111111111111111111111
3.补码:11111111111111111111111111111111111
可以看出-1在计算机中用二进制表示为全1。十六进制是0xFFFFFF。
使用Windows7的用户可以使用自己的计算器帮助学习十进制、八进制、十六进制和二进制之间的转换,非常方便。
这个网站是个人知识管理的网络存储空间。所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请一键举报。
更多负数的二进制表示方法有哪些(负数的二进制表示方法是)相关信息请关注本站,本文仅仅做为展示!