主题:不会汇编,请教一个二进制的乘法!
moon61017
[专家分:0] 发布于 2006-10-18 00:20:00
菜的要命,见笑了!
今天看计算机原理,遇到原码一位乘法,虽然会用原码一位乘法运算,但是手工竟然和书上的结果不一样.
比如这个:
0.11011*0.11111
原码一位乘法的结果是:
0.1101000101
手工结果:
0.1011010101
我用一个C程序验证我的原码一位乘法的结果是正确的,手工的错误的.
天哪,我怎么连手工都不会算这个了,麻烦那位大侠,手工算下,告诉我正确结果,不生感激!
[em10][em10][em10]
回复列表 (共4个回复)
沙发
zouweijian [专家分:350] 发布于 2006-10-18 00:56:00
你最好把二进制换成16进制,这样会简便一些。我乘了一下:
0.D8
* 0.F8
_________
0.D140
再把结果化成二进制的就可以了,结果就是0.1101000101
板凳
救世猪猪 [专家分:560] 发布于 2006-10-18 22:28:00
楼上的能详细讲一下如何进行16进制的乘法运算吗?
3 楼
zouweijian [专家分:350] 发布于 2006-10-18 23:28:00
我觉得进行16进制运算和进行10进制运算的方法是一样的,只是16进制是逢16进1的
4 楼
maoaijie521 [专家分:0] 发布于 2006-10-24 15:10:00
二进制的乘法和十进制的道理相同,一个是逢2进一,一个是逢10进一
如:
0.11011
* 0.11111
----------
11011
11011
11011
11011
11011
------------
0.1101000101
从右向左走:1等1,第二位:1加1等2,向前进一,结果等0;第三位:1加1等2向前进一,结果为0,再加上后位进的一,结果为1;第四位:1加1等2进一,再加一等1,再加后位进的一结果为2再次向前进1,输出结果为0,此步向前为进了两个1;第五位:1加1等2进1,1加1等2进1,后位进了两个1,1加1等2进1,输出结果为0,此位向第六位进3,.......如此类推下去结果为0.1101000101
我来回复