vb boolean long 哪个快

来源:百度知道 编辑:UC知道 时间:2024/06/10 21:10:36
dim a as boolean
a=true
if a then ...

dim b as long
b=1
if b=1 then

哪个快...

boolean要快,这也是为什么boolean型存在的原因,不单单是为了代码方便

举个例子:假设VB中变量用8位存储

if语句中 编译器要比较a与true是否相等.
true=11111111 false=00000000
(对true每位取反得到的即是false,即Not true的结果是false)
这时a=11111111(因为原始句中a=true,计算机中true等价于11111111)
编译器只要比较 a 与true 的第一位是否相等。 比较结果就出来了

但是
if语句中 编译器要比较b与1是否相等.
b=00000001
1=00000001
编译器编译器需要从第1位比较到第8位,才能判断出结果
(不比较到第8位,即使前7位都一样,也没用)
(有人会说也可能从第8位开始比较啊? 不要忘了即使从第8位开始比较也要比较到第1位。因为b与10000001、b与00000001必须比较到第1位才可以区分开)

按编译来说

这两种编译结果都是一条 比较指令
速度上应该一样的

当然是布尔型快。
布尔型比长整形占用空间少很多,因此编译时空间复杂度相对小,也就是节约了空间分配和数据读取的时间,虽然微乎其微。

按数据类型来说前者快。

因为它占用2个字节

后者占用4个字节。

Boolean Boolean 数据类型 Boolean 变量存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False。

单纯从速度上说,没什么很大影响,如果你的数据是要表示True和Flase从程序的可读性和效率等方面都比定义为long好很好