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