如何实现2进制除法

donkey2004112103 2008-07-16 09:46:24
各位高手,有没有用c实现二进制除法的代码。自己写不出来啊
...全文
516 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dding_inshili 2008-07-23
  • 打赏
  • 举报
回复
这个移位法恐怕只能处理2进制的乘除问题, 如果来一个3进制, 5进制, 7进制,那怎么办呢???
Angleyuhj 2008-07-23
  • 打赏
  • 举报
回复
同意,利用移位运算。


ChamPagneZ 2008-07-23
  • 打赏
  • 举报
回复
帮楼主顶一下哈
summitily 2008-07-23
  • 打赏
  • 举报
回复
右移是除法 左移是乘法
caimps 2008-07-23
  • 打赏
  • 举报
回复
位运算
9527他大爷 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crastin 的回复:]
微机原理上的除法是通过右移实现的,移动1位除以2,如c/c++上Num>>x代表Num除以2的x次方,如果除数不是2的幂,则需要将除法转换成乘法和加法来实现,具体转换需要根据精度去写不同的算法。如果还需要得到余数,则需要带符号为进行右移。
具体的写法网上应该有参考代码吧。
[/Quote]
  • 打赏
  • 举报
回复
移位问题!~[Quote=引用 2 楼 crastin 的回复:]
微机原理上的除法是通过右移实现的,移动1位除以2,如c/c++上Num>>x代表Num除以2的x次方,如果除数不是2的幂,则需要将除法转换成乘法和加法来实现,具体转换需要根据精度去写不同的算法。如果还需要得到余数,则需要带符号为进行右移。
具体的写法网上应该有参考代码吧。
[/Quote]
satness 2008-07-23
  • 打赏
  • 举报
回复
微机原理上的除法是通过右移实现的,移动1位除以2,如c/c++上Num>>x代表Num除以2的x次方,如果除数不是2的幂,则需要将除法转换成乘法和加法来实现,具体转换需要根据精度去写不同的算法。如果还需要得到余数,则需要带符号为进行右移。
具体的写法网上应该有参考代码吧。
jy01807853 2008-07-16
  • 打赏
  • 举报
回复

#include <stdio.h>

int main()
{

int i = 1024;
i >>=3;
printf( "%d", i);
}

69,371

社区成员

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

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