Tag: 整数算术

在x86上以32位块实现类似学校的划分

假设我有两个大数字(定义如下),我想通过回退到x86 avaliable算法来实现它们的划分 0008768376 – 1653656387 – 0437673667 – 0123767614 – 1039873878 – 2231712290/0038768167 – 3276287672 – 1665265628 C = A / B 这些数字存储为32位无符号整数的向量。 第一个,A,是6-unsigned-int向量,B是3-unsigned-int长向量[这个字段中的每一个我自己命名为’digit’或’field’] 得到的C将是一些3-unsigned-int向量,但要计算它我需要回退到一些可用的x86(32位模式,虽然我也可以听到x64,但这是次要的)算术 告诉我如何计算至少第一个,最重要的C结果矢量字段.. 怎么做?

欺骗将常数(2的幂)除以整数

注意这是一个理论问题。 我很满意我的实际代码的性能。 我只是想知道是否有其他选择。 是否有一个技巧可以通过整数变量值对整数除以整数变量值进行整数除法,而不必使用实际的除法运算? // The fixed value of the numerator #define SIGNAL_PULSE_COUNT 0x4000UL // The division that could use a neat trick. uint32_t signalToReferenceRatio(uint32_t referenceCount) { // Promote the numerator to a 64 bit value, shift it left by 32 so // the result has an adequate number of bits of precision, and divide […]