VB.NET中True为何以-1存储而非1?
- 内容介绍
- 文章标签
- 相关推荐
本文共计705个文字,预计阅读时间需要3分钟。
Visual Basic (VB) 中,`Not` 关键字并不直接执行按位非操作(Bitwise Not),而是用于逻辑运算中,反转操作数的布尔值。在 VB 中,`True` 的值被定义为 -1,而 `False` 的值被定义为 0。
所以,在 VB 中:- `Not True` 将返回 `False`,因为 `True` 的值是 -1,`Not` 将 -1 反转为 0。- `Not False` 将返回 `True`,因为 `False` 的值是 0,`Not` 将 0 反转为 -1。
这种机制意味着 VB 中的 `Not` 操作并不是直接对数字执行按位非操作,而是对布尔值进行反转。因此,VB 的 `Not` 实现与 C++ 或 Java 中的按位非操作不同。在 VB 中,并没有直接使用二进制补码的方式来实现按位非操作。
本文共计705个文字,预计阅读时间需要3分钟。
Visual Basic (VB) 中,`Not` 关键字并不直接执行按位非操作(Bitwise Not),而是用于逻辑运算中,反转操作数的布尔值。在 VB 中,`True` 的值被定义为 -1,而 `False` 的值被定义为 0。
所以,在 VB 中:- `Not True` 将返回 `False`,因为 `True` 的值是 -1,`Not` 将 -1 反转为 0。- `Not False` 将返回 `True`,因为 `False` 的值是 0,`Not` 将 0 反转为 -1。
这种机制意味着 VB 中的 `Not` 操作并不是直接对数字执行按位非操作,而是对布尔值进行反转。因此,VB 的 `Not` 实现与 C++ 或 Java 中的按位非操作不同。在 VB 中,并没有直接使用二进制补码的方式来实现按位非操作。

