回 帖 发 新 帖 刷新版面

主题:不会汇编,请教一个二进制的乘法!

菜的要命,见笑了!

今天看计算机原理,遇到原码一位乘法,虽然会用原码一位乘法运算,但是手工竟然和书上的结果不一样.

比如这个:

0.11011*0.11111

原码一位乘法的结果是:
0.1101000101
手工结果:
0.1011010101

我用一个C程序验证我的原码一位乘法的结果是正确的,手工的错误的.

天哪,我怎么连手工都不会算这个了,麻烦那位大侠,手工算下,告诉我正确结果,不生感激!

[em10][em10][em10]

回复列表 (共4个回复)

沙发

你最好把二进制换成16进制,这样会简便一些。我乘了一下:
  0.D8
* 0.F8
_________
0.D140
 再把结果化成二进制的就可以了,结果就是0.1101000101

板凳

楼上的能详细讲一下如何进行16进制的乘法运算吗?

3 楼

我觉得进行16进制运算和进行10进制运算的方法是一样的,只是16进制是逢16进1的

4 楼

二进制的乘法和十进制的道理相同,一个是逢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

我来回复

您尚未登录,请登录后再回复。点此登录或注册