首页 > 编程知识 正文

负数的八位二进制补码,二进制负数表示

时间:2023-05-03 17:20:45 阅读:159388 作者:2505

目录

二进制运算

补数的概念

证明负数可以用补数表示

在二进制运算计算机中,数值的运算都用二进制表示。

在一个二进制数中,最高有效比特是已编码比特,0是正数,1是负数。

六的二进制文件: 0000 0110

8的二进制文件: 0000 1000

-8的二进制文件: 1000 1000

例如,计算:6 8

00000110

000001000

------------

00001110

结果为0000 1110,即十进制的14。

但是,计算起来,是6(-8 ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。

00000110

10001000

------------

10001110

的结果为1000 1110,即十进制的-14,显然其结果是错误的。

从上面的例子可以看出,使用通常的加法规则进行运算的话,正数和正数相加的结果是正确的,正数和负数相加的结果是错误的。

在计算机中,为了解决将正数与负数相加的问题,用补数表示负数。

在介绍补数的概念补数的概念之前,先介绍一下“型”的概念。

假设当前时针指向8点,准确时间是6点,调整时间有以下两种拨号方法。

一是倒带2小时,8 - 2=6点;

另一个是顺发10小时,810=126=(126 ) % 12=6点;

也就是8 - 2=8 10=6点。

钟表的“模式”是12,减去2和加上10的效果是一样的。 也就是说,2和10相互是补数。

如果两个数互为补数,则它们之和正好等于“模”。 所以,减法也可以转换为加法。

x- Y=X(y的补数)=x )“模”-y ) )。

对于计算机,其概念和方法完全相同。 n比特的计算机,作为n=8,能够表现的最大数为1111 1111。 再加一成为1000000000(9比特),但由于只有8比特,所以最高位比特1自然地丢失,返回到0000000,因此8比特二进制系统的"模式"为2的8次幂. 在这样的系统中,减法问题也是加法问题,只要用对应的补数表示减数就可以了。 将补数用于计算机对数的处理是补数。

求给定数值的补数有以下两种情况。

正数补数与原始代码相同。

负数补数是将原始代码中除符号位外的所有位反转(0变为1,1变为0,符号位保持为1 ),然后加1。

8位计算机负数补数公式:

1111 1111 -负数源代码1=1 0000 0000 -负数源代码=“模”-负数源代码

如上例所示,要计算6(-8 ),请先得到-8的补数,然后对6增加补数。

-8的补数: 1111 0111 1=1111 1000

6附加代码: 000001101111000=11111111110

结果的第一位是1,表示此结果是负数的补数。 与该补数对应的负数是(减去1后取反) )。

首先1:1111 1110 - 1=1111 1101

取反: 1000 0010 (即十进制的-2) ) ) ) ) ) ) ) ) ) )。

在计算机系统中,数值都用补码表示和存储。 因为,通过使用补数,可以将编码比特和数值字段统一地处理。 另外,加法和减法也可以统一处理。 也就是说,加法和减法的运算只能用一种加法电路进行。

证明负数可以用补数证明。 x-y=x(-y )的补数

-Y的补数:“1111 1111 - Y

x-y=x(-y )的补数

=x(1111111-y ) 1

=X - Y 1 0000 0000

=X - Y 0000 0000

=X - Y

在8位计算机上,10000 0000(9位)的最高1必须舍弃。 也就是说,00000000。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。