为什么bool有时被称为" flags"?

时间:2015-09-27 16:35:26

标签: boolean flags

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

2 个答案:

答案 0 :(得分:6)

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

布尔变量(如标志)只有两种状态 - truefalse

答案 1 :(得分:4)

Flag可以用作名词和动词:标志可以表示注释,标记,发出信号(也许这是通过使用航海标志得出的?)

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

  

存储器同时被访问两个十进制数字(偶数 - 奇数   数字数字的数字对或文本的一个字母数字字符   数据)。每个十进制数字是6位,由奇数奇偶校验组成   位,标志位,以及4位BCD位   格式如下:

     

C F 8 4 2 1

     

Flag位有几种用途:

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

因此,用于标记或指示某些内容的位被称为标志位。

当然,在flag fields或状态寄存器中使用“flag”是非常自然的。

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

PS:同样的问题已经asked,但遗憾的是没有答案。