IEEE-754的“交换格式”是什么意思?

时间:2019-10-18 14:58:46

标签: ieee-754

该标准表示,它们支持实现之间的浮点数据交换。这里的“实施”是什么意思?以及这种交换是如何发生的?

1 个答案:

答案 0 :(得分:2)

与许多编程标准一样,该标准指定一组规则。遵循这些规则的任何内容都是该标准的实现。根据IEEE 754-2008摘要,“符合此标准的浮点系统的实现可以完全用软件,完全用硬件或软件和硬件的任何组合来实现。”

例如,从理论上讲,可以设计一种计算机处理器,该计算机处理器本身支持浮点格式,并且每个IEEE 754操作都有一条指令。或者,您可以编写一个针对处理器的C编译器,该处理器具有一些浮点运算,例如加法和乘法,但是使用软件例程进行平方根和其他运算。或者,您可以编写使用纯C整数运算来实现所有IEEE 754运算的软件,而无需依赖任何特定硬件。这些都可以是IEEE 754实现。

浮点行为主要根据表示的数学值来指定。对于算术格式,标准指定了表示的数字,对其执行算术运算的结果,等等。交换格式远不止于此;对于交换格式,该标准精确指定了哪些位模式表示哪些值。

因此,如果一个IEEE 754实现将一个值放入浮点对象中,然后将这些位传输到可能在完全不同的硬件上运行的另一实现中,并且该目标实现将这些位还原到浮点对象中如果具有相同的交换格式,则目标对象将具有与原始源对象相同的值和行为。换句话说,交换格式使数据可移植。

这种传输可以通过网络进行,方法是将这些位存储到磁盘上,然后将其物理移动到另一台计算机上,通过将这些位(或它们的表示形式,例如十六进制)打印在纸上然后键入通过人类或其他方式。

标准仅指定从最高有效到最低有效的一系列位中的位模式。它没有指定这些位如何分组为字节或这些字节如何排序,因此发送和接收系统必须确保以正确的顺序发送和接收这些位。