【问题标题】:Why are bools are sometimes referred to as "flags"?为什么布尔有时被称为“标志”?
【发布时间】:2015-09-27 16:35:26
【问题描述】:

为什么布尔值有时被称为“标志”?这只是一个比喻还是背后有一些历史原因?

【问题讨论】:

  • 我一直认为它与提高或降低标志以开始和停止交通有关。

标签: boolean flags


【解决方案1】:

标志是一种古老的传递信息的方式。一面旗帜,如果我们忽略将其降到半旗,则只有两种状态——升起或未升起。例如,考虑一面白旗——举起它意味着投降。不提高它,默认状态,意味着你没有投降。

一个布尔变量,就像一个标志,只有两种状态 - truefalse

【讨论】:

    【解决方案2】:

    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,可惜没有答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-17
      • 2020-02-01
      • 2017-10-12
      • 1970-01-01
      • 2020-07-07
      • 2020-11-06
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多