为什么 Microsoft Access 中的“是/否”值映射到 -1 和 0?

为什么 Microsoft Access 中的“是/否”值映射到 -1 和 0?

-1 的使用让我感到困惑。我原本期望这些值是:

  • 否 --> 0
  • 是 --> +1

使用 -1 而不是 +1 背后是否有历史原因?

答案1

正如 Stack Overflow 上所讨论的那样这里Yes/True值在 Access 中显示为 -1,因为

  • Yes/NoAccess 中的字段模拟bit字段,
  • IntegerAccess 中的值是有符号的,二进制补码价值观,
  • No/False用 0 表示,并且
  • 1 位数的唯一其他二进制补码值是 -1。为了说明这一点,二进制补码数可以具有以下值:

3 位:

bits  integer
----  -------
000         0
001         1
010         2
011         3
100        -4
101        -3
110        -2
111        -1

2位:

bits  integer
----  -------
00          0
01          1
10         -2
11         -1

1位:

bits  integer
----  -------
0           0
1          -1

对于字段的整数表示bit(即 1 位),如果No/False为 0,则唯一可用的其他值Yes/True是 -1。

相关内容