这个代码会在大端和小端系统上正确运行吗?

时间:2017-04-01 00:16:47

标签: c++ endianness

我正在编写一个对标准C ++库具有约束访问权限的平台的代码,我试图通过一个只接受uint8数组的接口来推送一个双打数组。我看到这个堆栈溢出here

显示了将双精度值转换为int数组的方法。这是我的代码。 (请注意,索引1和索引9分别是小数和分隔符。值也始终介于0.0和1.0之间)

void Instrument::ConvertDoubleToUInt8Array(double a_dValue, int *a_dValueArray)
{

    a_dValueArray[0] = (int(a_dValue)%10);
    a_dValueArray[1] = 10;
    a_dValueArray[2] = (int(a_dValue*10)%10);
    a_dValueArray[3] = (int(a_dValue*100)%10);
    a_dValueArray[4] = (int(a_dValue*1000)%10);
    a_dValueArray[5] = (int(a_dValue*10000)%10);
    a_dValueArray[6] = (int(a_dValue*100000)%10);
    a_dValueArray[7] = (int(a_dValue*1000000)%10);
    a_dValueArray[8] = (int(a_dValue*10000000)%10);
    a_dValueArray[9] = 11;
}

我的问题是这个代码是否会在big endian和little endian系统上正确运行。我不明白为什么不会,但我在这个领域不是很有经验

0 个答案:

没有答案