[X原码]=10101100B 求[(-12)X]补码 求过程

[X原码]=10101100B 求[(-12)X]补码 求过程,第1张

设定字长为8位:
[X]补 =,
注:最高位的0是正数的符号位,符号位右侧的两个0用于补齐8位;

将[X]补 右移1位得[X/2]补 =

将[X]补 左移1位得[2X/]补 =[2X]原 =0011 0010
注:正数的原码反码补码,是相同的。
==============================

补码的算法如下:

一、补码加法
[X+Y]补 = [X]补 + [Y]补
例:X=+0110011,Y=-0101001,求[X+Y]补
[X]补=00110011 [Y]补=11010111
[X+Y]补 = [X]补 + [Y]补 = 00110011+11010111=00001010
注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是100001010,而是00001010。

二、补码减法
[X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补
其中[-Y]补称为负补,求负补的方法是:负数的绝对值的原码所有位按位取反;然后整个数加1。
例:1+(-1)[十进制]
1的原码00000001 转换成补码:00000001
-1的原码10000001 转换成补码:11111111
1+(-1)=0
00000001+11111111=00000000
00000000转换成十进制为0
0=0所以运算正确。

三、补码乘法
设被乘数X补=X0X1X2……Xn-1,乘数Y补=Y0Y1Y2……Yn-1。
XY补=X补×Y补,即乘数(被乘数)相乘的补码等于补码的相乘。

补码的含义:

计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理 。

回答问题之前先让我们来了解一下:

一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。

反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1 (即在反码的基础上+1)。

因此我们在求一个数的补码之前,应当先求出这个数的原码。

将一个数转化为二进制数,既是它的源码。可通过除二求余法算得(既对一个数除二求余,这会得出一个数和一个余数,再对得出来的数进行求余,得出余数,以此类推,最后将余数倒写即可)。

如是一个正数,它的补码与它的原码相同;如果是一个负数,它的补码是在它的原码的基础上,开头符号位不变,其余各位取反,最后再在其上面+1(既在反码的基础上+1)。

+62原码01000001,反码和补码与原码相同

-62原码11000001:

反码10111110

补码10111111

例如:

+64 原码=反码=补码=0100 0000。

-10 原码=1000 1010;

-10 反码=1111 0101;

-10 补码=1111 0110。

以补码相加,得:0011 0110,这是+54 的补码。

扩展资料:

假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。

若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。实际上,以12为模的系统中,11和1,8和4,9和3,7和5,6和6都有这个特性,共同的特点是两者相加等于模。

参考资料来源:百度百科-补码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12727751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存