补码表示的定点数相加问题!
书上是这么说的:加法运算的原则是两个数的补码之和等于两个数之和的补码.例如,如果相求0.1010+(-0.0101),则应当先将其各自转换成补码形式,0.1010的补码为01010,-0.0101的补码则为11011,随后补码相加的结果为100101,有溢出,最终结果是00101,恢复二进制0.0101.
该我说了:完全看不懂,首先这两个0.1010+(-0.0101)的数是几进制的数?怎么各自转换成补码形式?为什么0.1010的补码为01010?还有-0.0101的补码为什么是11011?怎么算的?
人气:239 ℃ 时间:2020-02-02 11:44:41
解答
我一个一个回答吧,首先两个二进制数相加肯定还是二进制数;其次,二进制有符号数转化为补码形式的规则如下,正数形式不变(当然小数点不用),负数是将其绝对值集对应正数补码形式按位取反末位加一即可.;最后,相加后保持位数不变,若最高位有进位直接舍去即可.-0.0101的补码不是应该是111011嘛?符号不是用1表示吗? 他们转换成补码后相加又怎么得到100101的?我会追加分的。小数的符号位是用整数位表示的(双符号位除外),所以只要11011即可;加的过程如下01010+ 11011=100101第一位相加得1,第二位相加为2,进高位1,且此为保留成0(用十进制数加法思考对比下),以此类推,最后,高位有进位,将此位舍去,结果就是0.0101了.注意二进制数相加是逢2进1,其他与十进制数类似。
推荐
猜你喜欢
- 动物庄园的好词好句,急!
- 点燃火柴和花生米,说说能量是如何转换的
- 等底等高的两个三角形一定能拼成平行四边形吗
- 两个乘数的的积是15.36,其中的一个乘数是12 另一个乘数是多少
- 平面内不过同一点的n条直线两两相交,它们的交点个数记作an,并且规定a1=0.为什么an-an-1=n-1
- 请问三相四线有功电度表当中,3*200/380V 3*1.5(6)A 50Hz 600r/kW.h
- will,her,feel,like,think,class,wear,five,eat.这几个单词:每个单词中变换其中一个字母成为另一个单词
- 当k为何值时,y=(k-1)x的 |k|+k-2为一次函数