我有一个关于不同计算机体系结构之间的数据传输的问题。 在此过程中具体转换整数、浮点和字符类型数据时会出现什么样的问题?您能否提供这些具体类型的简要信息?
我搜索过,但找不到任何必要的信息。 任何信息将不胜感激。提前致谢。
最佳答案
在现代机器上的架构之间移植代码时的最大区别是:
- 指针的大小:例如 32 位与 64 位。
- long 的大小:通常与指针的大小相同。
- 字节顺序:大端或小端(或者某些古老的机器是中端)。
- 二进制浮点与十进制浮点:十进制浮点是 2008 年添加的最新标准。这不是一个常见问题,但许多机器没有硬件支持(IBM Power 机器是唯一的吗?)用于十进制浮点并具有仿真库。
谈论真正的旧机器时还有一些事情:
- 机器字的长度:与指针大小有关
- 一个字节中的位数:现在标准化为 8,但 40 多年前,情况并非如此。
- float 的表示形式。在 IEEE-754 之前,没有标准,不同的机器有不同的表示形式。具有两种浮点类型的 VAX 可能是最著名的例子之一。
- 负数的表示。今天的机器使用二进制补码。 Cray 1 以使用补码而闻名。
关于architecture - 不同计算机体系结构之间数据传输的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290228/