除法变加减和移位的实现:试探减法
来源:互联网 发布:linux 硬盘的dd命令 编辑:程序博客网 时间:2024/05/29 10:37
//从一本书上看到的除法变加减和移位的实现,贴出来共享。
// 计算n/d, d是无符号数,已假定商q不超过N位
//整除,除法变加减和移位的实现:试探减法
unsigned udiv_simple(unsigned d, unsigned n, unsigned N)
{
unsigned q = 0, r = n;
do{
N--;
if ( (r >> N) >= d )
{
r -= (d << N);
q += (1 << N);
}
}while(N);
return q;
}
/*******************just for test ***************************************/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int d, n;
int result;
if (argc != 3)
{
printf("wrong usage!\r\nExample: ./a.out 5 33\r\n");
return 1;
}
d = atoi(argv[1]);
n = atoi(argv[2]);
result = udiv_simple(d, n, 31);
printf("%d\n", result);
//printf("Hello world !\n");
//system("pause");
}
- 除法变加减和移位的实现:试探减法
- 利用移位和减法的除法算法
- 用移位和加减运算实现无符号整数除法
- 通过试探减法实现无符号数除法
- 移位实现的乘除法
- 移位实现的乘除法
- 最大公约数-减法和除法的合体,更快啊!
- 移位,逻辑运算实现加法,乘法和除法
- 用移位实现两个整数的除法
- 实现整数的乘法,减法和除法运算。只允许使用加号
- 除法和乘法的移位处理
- 移位实现乘除法
- 只使用加法实现减法,乘法和除法 [# 68]
- 使用移位运算和加减法实现乘除法
- 在只容许使用++运算符的情况下,请完成下面代码,实现减法,乘法和除法。
- 9.7数学与概率(二)——实现整数的乘法、减法和除法运算,只允许使用加号
- 程序员面试金典: 9.7位操作 7.4只用加号实现整数的乘法、减法和除法运算
- 用+,-,移位实现除法运算
- 2012技术方向上的期望
- 程序员,如何远离你的电脑
- 快递服务与计算机网络的关系
- 技术随笔(密码保存,MSMQ)
- ZIP压缩与解压
- 除法变加减和移位的实现:试探减法
- IBM大型主机学习总结(二)
- FTP服务器原理
- ext+mvc2.0登录面板
- ext3.0 treegrid 部门管理
- ext trigger+treepanel
- java 矢量绘图程序,多文档视图,文档间拖拽,可导出成位图文件,可在线更新
- [旧文]图解nlite精简XP全过程
- sample structure