社区
C语言
帖子详情
二进制运算问题!!!
bahanzo1
2003-08-30 12:08:22
烦请大虾指点 mod(求余)运算的二进制实现详情
...全文
51
6
打赏
收藏
二进制运算问题!!!
烦请大虾指点 mod(求余)运算的二进制实现详情
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
你的问题太不清楚了吧
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章