已知x=-0.1101,y=0.1001,用补码运算方法计算X*Y
x=0.1001,y=-0.1011 ,用补码一位乘法计算,x补=1.1011 y补=1.1101,(x·y)补=1.1011*1.1101。
补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:
(1)解决了符号的表示的问题。
(2)可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计。
(3)在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易。
补码的运算
在计算机系统中,数据的表示与存储都是以0或1的形式,而表示这些0或1,我们可以将外部数据通过数字电路进行编码,对于有符号数,在计算机系统中有三种编码,即我们通常所了解的编码、原码、反码、补码。
正数原码 = 0 + 正数绝对值,负数原码 = 1 + 负数绝对值。
例如:
+20的原码:00010100,- 20的原码:10010100。
反码:
正数反码 = 正数原码,负数反码 = 负数原码符号位的1不变,绝对值部分按位取反。
例如:
+20的原码:00010100。
+20的反码:00010100。
- 20的原码:10010100。
- 20的反码:11101011。
x=0.1001,y=-0.1011 ,用补码一位乘法计算,x补=1.1011 y补=1.1101,(x·y)补=1.1011*1.1101。
x补=0.110111 【-x】补=1.001001
y补=1.010110(乘数)
符号 D A A¹ 操作
00 000000 1010110 0 +0
00 000000
00 000000 右移
00 000000 0101011 0 +-x补
11 001001
11 001001 右移
11 100100 1010101 1 +0
00 000000
11 100100 右移
11 110010 0101010 1 +x补
00 110111
00 101001 右移
00 010100 1010101 0 +-x补
11 001001
11 011101 右移
11 101110 1101010 1 +x补
00 110111
00 100101 右移
00 010010 1110101 0 +-x补
11 001001
11 011011 1110101 0
x·y的补=1.011011111010
正数
正整数的补码是其二进制表示,与原码相同。
例:+9的补码是00001001。(备注:这个+9的补码是用8位2进制来表示的,补码表示方式很多,还有16位二进制补码表示形式,以及32位二进制补码表示形式,64位进制补码表示形式等。每一种补码表示形式都只能表示有限的数字。)
求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。
同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。
以上内容参考:百度百科-补码
x=0.1001,y=-0.1011 ,用补码一位乘法计算,x补=1.1011 y补=1.1101,(x·y)补=1.1011*1.1101。
假设当前时针指向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。
扩展资料:
补码表示将符号位和值位统一起来,使符号位和值位可以直接一起参与运算,也为以后乘数除法器等运算装置的设计提供了很大的方便。
补语的介绍与当时计算机设计的背景有关。不仅要考虑所表示的数字的类型(十进制、整数、实数和复数)、数值范围和精度,而且还要考虑数据存储和处理所需的硬件成本。
参考资料来源:百度百科-补码