二进制原码一位乘法运算

原码一位乘法运算

今天自己遇到的和大家分享分享(语句比较啰嗦,希望耐心看完,对你会有所影响,哈哈哈)

主要思想:符号位单独参加运算,数据位取绝对值参加运算。
运算法则:
设: [X]原=X0.X1X2…Xn [Y]原=Y0. Y1Y2…Yn(.只是表示符号位和数值位的区别)
则 :1.P0 =X0(与或)Y0 (与或:当两值相同的时候为0,不同的时候为1)
2.|P| = |X|· |Y|
下面就用自己的题目给你们讲解透彻:
题目如下:
这是自己出的一道题目
给出过程:
在这里插入图片描述
解析过程:
首先我们要把乘数和被乘数写出来,被乘数写到A中,乘数写到C寄存器中(这边有个问题,就是C中的0要不要写的问题,其实仔细观察不难看出来,这个零是为了方便理解写上去的,其实寄存器中并没有这个零和那个小数点)
下面进行计算:
在这里插入图片描述
先通过被乘数算出1,然后看1的低位的数字,添加到C中(这样就把C中的最后一位给除去了,0.11111——>1.01111)接着就是把1的数字向右移一位(逻辑右移)接下去看3的最后一位是什么,用它乘以被乘数,得到下面的加数,如此反复即可。

终止条件:当C中的前五位被完全替换时结束执行。切记这一次的代码还是要右移操作

最后写出二进制代码:在这里插入图片描述
最后一步判断乘积的符号熬(本题是一正一负,所以最后是负的)

在考试之中怎么验证自己算的对不对呢?

很简单把题目中的值转换为十进制×起来和自己算的二进制转十进制以后的数比较,一样就是对的啦!

有人就会问了小数怎么烦怎么办:就是把小数点一起去掉算,是一样的道理呀(小数转换为整数来计算)

发布了2 篇原创文章 · 获赞 2 · 访问量 95

猜你喜欢

转载自blog.csdn.net/weixin_45629315/article/details/104925954
今日推荐