• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

问一个关于除法的问题

PG_CPZ 2018-10-23 浏览量:539

有一个被除数 分成高32位(HA)和低32位(LA),除数是32位的B ,结果存在32位的C ,HA肯定小于B所以结果32位就够了。

但是小弟不知道应该怎么写才能得到正确的数据.

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你是写汇编吗?这么纠结?

    uint64 a = 123456789;

    uint32 b = 123456;

    uint32 c = (uint32)(a/(uint64)b);

    • 发布于 2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 把32位强制转换成64位参与计算,最终结果强制转换成32位就行了
    • 发布于2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

  • HA除完之后不一定比B小的,你想太多了。不过在高级语言层面,我们是不需要关心变量在内存中是怎么运算的,只关心结果,直接用逻辑式

    int halabc;
    long a;
    c=a/b;
    a&=0xffffffff00000000;
    a>>=32;
    ha=a;
    即可。

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种直接将A移位之后进行运算就行,剩下的操作编译器会帮你完成,不用考虑
    • 发布于2018-11-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是直接用移位的计算,这样可以快速的处理你的数据
    • 发布于2018-11-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

问一个关于除法的问题