Tag: 定点

64位定点乘法错误

我在C#中实现了一个64位定点签名的31.32数字类型,基于long 。 到目前为止,添加和减法都很好。 然而,乘法有一个我想要解决的烦人的情况。 我当前的算法包括将每个操作数分成最高和最低有效32位,执行4次乘法到4个长度并添加这些长度的相关位。 这是代码: public static Fix64 operator *(Fix64 x, Fix64 y) { var xl = x.m_rawValue; // underlying long of x var yl = y.m_rawValue; // underlying long of y var xlow = xl & 0x00000000FFFFFFFF; // take the 32 lowest bits of x var xhigh = xl >> 32; // take […]