为什么bool有时被称为"旗帜"?

Kom*_*omm 8 flags boolean

为什么bool有时被称为"旗帜"?它只是一个比喻还是背后有一些历史原因?

Mur*_*nik 6

标志是传达信息的古老方式.如果我们忽略将旗帜降低到半旗,则只有两个状态 - 提升或不提升.例如,考虑一个白旗 - 提高它意味着放弃.不提高它,默认状态,意味着你不投降.

布尔变量,如标志,只有两个状态 - truefalse.


wer*_*ero 5

旗帜可以用作名词和动词:旗帜可以表示注意、标记、发出信号(也许这是源自航海旗帜的使用?)

计算机历史上对术语标志的早期(但可能不是第一次)使用可以在 1959 年的IBM 1620中找到(我的重点):

同时访问内存中的两位十进制数字(数字数据的偶数-奇数数字对或文本数据的一个字母数字字符)。每个十进制数字为 6 位,由一个奇校验位、一个标志位和四个表示该数字值的 BCD 位组成,格式如下:

CF 8 4 2 1

标志位有多种用途:

  • 在最低有效位中,它被设置为指示负数(带符号的大小)。
  • 它被设置为标记数字的最高有效位(字标)。
  • 在 5 位地址的最低有效位中,它被设置为间接寻址(1620 I 上的选项,1620 II 上的标准)。可以使用多级间接寻址(您甚至可以将机器置于无限间接寻址循环中)。在 5 位地址的中间 3 位(在 1620 II 上),它们被设置为选择 7 个索引寄存器之一。

因此用于标记或指示某事物的位称为标志位。

当然,在标志字段或状态寄存器中使用“标志”是很自然的。

但是,一旦建立了标志和位之间的关联,它们的使用就可以互换也是可以理解的。当然,这也适用于布尔变量。

PS:同样的问题已经被问过,但不幸的是没有答案。