Ansi c中是如何实现乘法的?

superheasy 2014-12-09 10:55:31
不是简单的加法吧?浮点数又如何?
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
灌水号 2014-12-10
  • 打赏
  • 举报
回复
有乘法指令就用乘法指令,没有就只能软件模拟,这个应该与硬件,编译器相关的。
「已注销」 2014-12-10
  • 打赏
  • 举报
回复
一般来说,计算单元都有整数乘法指令(连51系单片机都有),浮点乘法指令稍微高级点的计算单元都有。 浮点软件计算有一套开源C库,可以下载学习一下。 另外,可以用整数乘法做定点数运算,在注重性能等特殊场合,依然是正好的解决办法: 比如,2D图形运算,据我所知,有两套非常流行的2D图形引擎使用定点数技术: cairo 和 freetype2 PS:现代x86系CPU甚至都支持三角函数指令,如 fsin 指令。
橡木疙瘩 2014-12-10
  • 打赏
  • 举报
回复
TC2.0就有浮点仿真库,用来支持没有浮点处理器的机器。 用仿真比在有FPU的机器上运行要慢上几十倍。 整数乘法基本上不需要仿真。如果要仿真的话,大概是这样的: 用4位整数乘法与32位整数加法实现32位整数乘法(小学学过的乘法竖式) 用查表法实现4位整数乘法(就象九九表一样)
LouisScola 2014-12-10
  • 打赏
  • 举报
回复
几乎每个处理器中都有乘法指令吧,浮点计算有的处理器也支持,不支持只能软件计算了(这部分ANSI C可能要实现)

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧