![为什么 Microsoft Access 中的“是/否”值映射到 -1 和 0?](https://linux22.com/image/1391605/%E4%B8%BA%E4%BB%80%E4%B9%88%20Microsoft%20Access%20%E4%B8%AD%E7%9A%84%E2%80%9C%E6%98%AF%2F%E5%90%A6%E2%80%9D%E5%80%BC%E6%98%A0%E5%B0%84%E5%88%B0%20-1%20%E5%92%8C%200%EF%BC%9F.png)
-1 的使用让我感到困惑。我原本期望这些值是:
- 否 --> 0
- 是 --> +1
使用 -1 而不是 +1 背后是否有历史原因?
答案1
正如 Stack Overflow 上所讨论的那样这里,Yes/True
值在 Access 中显示为 -1,因为
Yes/No
Access 中的字段模拟bit
字段,Integer
Access 中的值是有符号的,二进制补码价值观,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。