gpt4 book ai didi

sql - 为什么 "Yes"在 MS Access 数据库中的值为 -1?

转载 作者:行者123 更新时间:2023-12-03 06:19:09 25 4
gpt4 key购买 nike

我正在查看 MS Access 中的链接数据。

“是/否”字段包含值 -1(是)和 0(否)。有人可以解释为什么这样一个反直觉的值用于"is"吗? (显然应该是1和0)

我想一定有一个很好的理由,我很想知道。

最佳答案

False 的二进制表示为 0000000000000000(使用多少位取决于实现)。如果对其进行二进制 NOT 运算,则会变为 1111111111111111,即 True,但这是有符号整数 -1< 的二进制表示.

最高有效位置的一位 1 表示有符号数的负数。通过反转所有位并加 1 来更改数字的符号。这称为 Two's complement .

让我们改变1111111111111111的符号。首先反转;我们得到:0000000000000000

然后添加一个:0000000000000001,这是1

这是 1111111111111111-1 的二进制表示的证明。

<小时/>

更新

此外,比较这些值时不要比较

x = -1

x = 1

相反,进行比较

x <> 0

这总是给出正确的结果,与所使用的约定无关。大多数实现将任何不等于零的值视为True

关于sql - 为什么 "Yes"在 MS Access 数据库中的值为 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com