gpt4 book ai didi

excel - 为什么(&HFFFF00 和 &HFF00)= &HFFFF00?

转载 作者:行者123 更新时间:2023-12-02 10:42:02 27 4
gpt4 key购买 nike

我正在调查 VBA 函数中的错误,并发现 (&HFFFF00 And &HFF00) = &HFFFF00

我期望得到不同的结果:(&HFFFF00 And &HFF00) = &HFF00

我错过了什么?

最佳答案

我明白了。

  • 第一个值 &HFFFF00 太大,无法容纳 16 位,因此它自动为 Long
  • 第二个值&HFF00确实适合16位,因此它是一个Integer,即有符号整数

尝试Debug.Print &HFF00, &HFF00&,您将看到-256 65280。第一个值是有符号整数,第二个值通过 & 后缀强制为(有符号)long。

显然,VBA 在可能的情况下将值存储为 16 位,并在表达式求值期间转换为 32 位时将它们删除,从而造成了困惑。

为了使操作正常工作,您需要使用 & 后缀强制常量变长。

关于excel - 为什么(&HFFFF00 和 &HFF00)= &HFFFF00?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57718221/

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