二进制运算问题!!!

bahanzo1 2003-08-30 12:08:22
烦请大虾指点 mod(求余)运算的二进制实现详情
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bahanzo1 2003-09-01
  • 打赏
  • 举报
回复
谢谢大家的关注

我的本意是想知道IDIV 和DIV 的实现详情(就是二进制的移位和相减实现的过程).
antijpn 2003-09-01
  • 打赏
  • 举报
回复
可以试试看这个变态方法
设数a,和数b,求a%b
首先取一个大于b而且是2的n次方的数,且2的n-1次方小于b
记c=2^n-b
然后用位运算把a中高于n位的数记为d,a中低于n位的记作e,然后c*d+e,进行循环,直到c*d+e<2^n为止,然后用c*d+e-b,应该就能得到余数了
Lymtics 2003-08-31
  • 打赏
  • 举报
回复
具体到汇编语言:

IDIV 和 DIV 指令是CPU 中处理除法的两条指令;
IDIV MEM32/REG32; EDX:EAX 里的数除以 MEM32/REG32 里的数;
EDX 里有余数(MOD 运算 %),EAX 有商(除法运算 /)。

在C/C++的编译器中,对(signed / unsigned )(long /short )(int/char) 的%运算
就由上述指令实现。
cnxiaohai 2003-08-31
  • 打赏
  • 举报
回复
就是用加法和移位怎么实现
playboyxp 2003-08-31
  • 打赏
  • 举报
回复
不知道楼主什么意思
bigbigbigsoft 2003-08-30
  • 打赏
  • 举报
回复
你的问题太不清楚了吧

69,336

社区成员

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

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