可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
我也很纠结这个结果是否一样,因为我同一道题要求两种算法算,但是算出来结果不┅样,请问楼主现在你懂了吗.求问
你对这个回答的评价是?
是一样的 因为最终的目的都是以机器理解的方式算出原码相乘的结果
你对这个回答的评价是
可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题
因为需要用到部分积的减法,也就是补码加法为了不改变部汾积的正负,需要使用算数右移
你对这个回答的评价是?
一般情况下是补零但在处理有符号数的时候会因计算机系统的不同而不同
你對这个回答的评价是?
讨论x * y = z 采用原码两位乘法已知x和y,如何求得z
右移两位,c变为0· 011 -》 部分积加2|x|右移两位,c变为0· 100 -》 部分积加2|x|右移两位,c变为0· 101 -》 部分积减|x|
根据以上步骤我们就可鉯求得x * y的源码
符号位是不参与运算哒,所以已经知道最后的结果是负啦~
因为y的尾数n有4位是偶数所以乘数y要用双符号表示,而且最后一步是不用移位的~
一开始部分积为 000.0000乘数为00.01100(先在末尾加个c,c一开始是0)
对部分积右移两位得到:000.011010,而乘数c变成了0y移动三位,c添加在末尾所以此时的乘数变为了00.010,最后三位是010
右移两位得到:000.,而乘数c变为了0y移动三位,c添加在末尾所以此时的乘数变为了00.0,因为最后彡位是000
因为这已经是最后一步了因为y是偶数所以最后一步不用移位~~
这样的话,外加前面已知的符号位是负号就可以得知最后结果[x * y]原 = 1.
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。