日期:2014-05-16  浏览次数:20624 次

C语言 除法问题
4个16bit的数组(unsigned short[4]) 除以一个unsigned int(32位)

找个合适的算法

------解决方案--------------------
直接除不行吗?

这个unsigned short[4] 是不是可以用一个int64_t 类型的变量来存放?
------解决方案--------------------
http://wenku.baidu.com/view/1d0c3fc58bd63186bcebbccc.html
乘除法都是可以使用移位实现的。实际上计算机也是用移位实现乘除法。
------解决方案--------------------
超过CPU整数的位数,是否可以理解为该CPU的大数,使用大数除法来计算:
http://wenku.baidu.com/view/5845671c964bcf84b9d57b09.html
------解决方案--------------------
这类问题都是模拟移位来做,可以参考现在32位平台下,模拟64位int除法的例子
参考资料
------解决方案--------------------
看要求的精度是多少? 16bit数除以32bit数, 如果90%情况被除数远比除数大,那可能数据结构定的有问题。