5

对于小端和大端?

如果它们在一个数组中怎么办?也安全吗?

4

2 回答 2

3

这与字节顺序无关。

正如您在此处看到的,char 几乎可以肯定是 8 位的,因此将其转换为整数在任何意义上都是安全的。

然而,将 int 转换为 double 并非如此。例如,数字 2^63 - 10 不能用 64 位双精度数精确表示。阅读每位计算机科学家应了解的浮点运算知识。在这里,强制转换会导致数字被截断,从而导致精度损失。

幸运的是,所有 32 位整数都可以毫无损失地转换,所以如果你的整数是 32 位长,那就很好。

于 2012-12-16T19:07:08.007 回答
2

是的,只要您键入转换常规 C 变量,它是安全的。

如果您要更改或移动构成这些变量的原始字节,您只需要担心字节序。

于 2012-12-16T19:06:54.410 回答