为什么布尔有时被称为“标志”?这只是一个比喻还是有什么历史原因?
旗帜是一种古老的传达信息的方式。如果我们忽略降半旗,一面旗帜只有两种状态:升起或未升起。例如,考虑一面白旗——举起它意味着投降。不提高它(默认状态)意味着您不会投降。
布尔变量就像标志一样,只有两种状态 -
true
和 false
。
Flag 可以用作名词和动词:标记可以表示注意、标记、发出信号(也许这是源自航海旗帜的使用?)
计算机历史上对术语标志的早期(但可能不是第一次)使用可以在 1959 年的 IBM 1620 中找到(我的重点):
同时访问内存两位小数位(偶数-奇数) 用于数字数据的数字对或用于文本的一个字母数字字符 数据)。每个十进制数为 6 位,由奇校验组成 位、一个标志位和四个 BCD 位(用于表示该数字的值) 以下格式:
C F 8 4 2 1
标志位有多种用途:
- 在最低有效数字中,它被设置为指示负数(带符号的幅度)。
- 它被设置为标记数字的最高有效位(文字标记)。
- 在 5 位地址的最低有效位中,它被设置为间接寻址(1620 I 上的一个选项,1620 I 上的标准配置) 二)。可以使用多级间接(您甚至可以将 机处于无限间接寻址循环中)。 在 5 位地址的中间 3 位(在 1620 II 上),它们被设置为选择 7 个索引寄存器之一。
因此用于标记或指示某事物的位称为标志位。
当然,在标志字段或状态寄存器中使用“标志”是很自然的。
但是一旦建立了标志和位之间的关联,它们的使用就可以互换也是可以理解的。当然,这也适用于布尔变量。
PS:同样的问题已经被问过,但不幸的是没有答案。