符号-大小法用于表示负数吗?

4
我了解到二进制补码用于表示负数,但是也有一种使用符号位的方法。符号位是否仍然用于表示负数?如果不是,那么它之前被使用在哪里?另外,如何使使用二进制补码的机器能够与使用符号位的机器进行通信和相互理解呢?
1个回答

7
是的,补码在今天经常被使用,尽管不是你所期望的地方。例如,IEEE浮点数 使用单个“符号”位表示正负。(因此,IEEE浮点数可以为-0)。然而,补码在整数中今天并不常用。
只有当两个使用不同数字表示的机器都试图使用其本地编码格式进行通信时,它们之间的通信才会出现问题。如果为交换信息定义了通用格式,则没有问题。例如,使用二进制补码的机器可以轻松地使用符号大小编码构造一个数字(反之亦然)。如今,不同的机器更可能使用数字的ASCII表示形式(例如,在JSON或XML中),或者使用完全不同的二进制编码(例如ASN.1,zigzag编码等)。

注意:作为交换格式,ASCII表示法如“1.23”、“-4.5e6”也是一种符号位表示法。 - chux - Reinstate Monica
以前很常见的是发现打包的BCD,它是符号-幅度(尽管符号使用了整个半字节)。http://en.wikipedia.org/wiki/Binary-coded_decimal#Packed_BCD - rici
好早以前,BCD压缩的整数有时候并不从字节边界开始。 - M.M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接