鱼C论坛

 找回密码
 立即注册
查看: 1690|回复: 7

[已解决]二进制的乘法问题

[复制链接]
发表于 2019-1-26 06:17:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2个八字节的数相乘 遇到了一点问题请大神帮忙   17* -114    已解17=00010001   -114=10001110   但不知为何相乘的结果为100101101110  
请大神帮我看看是哪里出错了 ?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-26 07:17:35 | 显示全部楼层
具体代码?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-26 16:08:51 | 显示全部楼层

不是  就需要个运算过程即可  我想知道自己运算哪里出错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-26 16:17:40 | 显示全部楼层
有符号数相乘?
无符号数相乘?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-26 16:27:03 | 显示全部楼层
人造人 发表于 2019-1-26 09:17
有符号数相乘?
无符号数相乘?

就是 普通的 17 *  (-114)  像小学乘法那样把运算过程写出来就好了   我不知为什么得出一个错误答案   而且还不能上传我答案过程的图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-26 16:35:28 | 显示全部楼层
想一想我们在十进制中如何计算一个正数乘以一个负数?
举例
17 *  (-114) = ?

先计算17 * 114 = 1938
然后在1938前面加一个负号变成 -1938

仔细看,我们在计算时是计算两个正数相乘,最后把两个正数相乘的结果取反

在二进制中同样如此

  1. 0001 0001        17
  2. 1000 1110        -114

  3. 1111 1000 0110 1110        -1938


  4. 1000 1110        -114
  5. 0111 0010        114


  6.        00000000
  7.       000100010
  8.      0000000000
  9.     00000000000
  10.    000100010000
  11.   0001000100000
  12. 00010001000000
  13. 000000000000000

  14. 000011110010010

  15. 0000 0111 1001 0010        1938
  16. 1111 1000 0110 1110        -1938
复制代码


1000 1110 是 -114
0111 0010 是 114

114 * 17 = 1938
0111 0010 * 0001 0001 = 0000 0111 1001 0010

0000 0111 1001 0010 是 1938

把0000 0111 1001 0010变成负数
1111 1000 0110 1110 是 -1938
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-26 16:36:07 | 显示全部楼层    本楼为最佳答案   
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-26 16:44:51 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 18:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表