负数的二进制表示方法有哪些(负数的二进制表示方法是),本文通过数据整理汇集了负数的二进制表示方法有哪些(负数的二进制表示方法是)相关信息,下面一起看看。

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的用户可以使用自己的计算器帮助学习十进制、八进制、十六进制和二进制之间的转换,非常方便。

这个网站是个人知识管理的网络存储空间。所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请一键举报。

更多负数的二进制表示方法有哪些(负数的二进制表示方法是)相关信息请关注本站,本文仅仅做为展示!