gpt4 book ai didi

vba - (非 1)由于某种原因计算为 -2

转载 作者:行者123 更新时间:2023-12-04 19:47:40 27 4
gpt4 key购买 nike

为什么 (Not 1) 评估为 -2?我希望它评估为 0。

enter image description here

最佳答案

1 不是 True 的整数表示,-1 是。

Debug.Print CInt(True) 'prints -1
Debug.Print CInt(False) 'prints 0

bool 运算符(NotAndOrXOr)在其操作数是 bool 值。当它们不是时,它们表现为“按位运算符”,但事实是,它们总是按位。

整数值1转换为 bool 值True只是因为True被定义为Not False,这意味着 any 非零值是 bool True。但是,当您将 -1 用于 True 时,您只会得到正确/预期的逻辑行为。

一个Integer用16位表示,所以1是这样的:

0000 0000 0000 0001

这使得 Not 1 这个:

1111 1111 1111 1110

符号位打开,因此值为负 - 修剪不重要的数字,您会得到:

10

2 的二进制表示。因此,Not 1-2

相反,-1 将是:

1111 1111 1111 1111

Not -1 是这样的:

0000 0000 0000 0000

关于vba - (非 1)由于某种原因计算为 -2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55049440/

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