在VB6中,强制True
为整数产生值-1。为什么-1在VB6中将True强制为一个整数?
这是为什么?这背后的推理是什么?
在大多数其他编程语言(C/C++,Java,Perl,Python等)中,当强制为一个整数时,true变为1。在布尔代数中,值1用于表示真/开。为什么VB6的做法不同?
我确实看到一个按位不是-1(真)将产生0(假),反之亦然(因为-1的表示在two's complement中全为1)的事实中有一定的优雅对称性,但我想不出这个身份的任何实际好处。
顺便说一下,我只是出于好奇而问 - 当我第一次学习VB6时,这让我感到奇怪,从此我一直在想。
我知道:)我不喜欢VB;) – Onkelborg 2010-10-20 00:09:21
有趣!感谢您的链接。我知道逻辑运算符没有短路,并且对整数值按位进行操作,但是我没有意识到它们是按位进行的,即使对于布尔值也是如此。和@Onkelborg,我也不喜欢VB,我只是好奇这个异常;-) – Cameron 2010-10-20 00:57:02
好:)对人类的希望:)对于人类的希望:) – Onkelborg 2010-10-20 00:58:39