如果布尔常量值true赋给一个整型变量,则整型变量的值是??
答案:1 悬赏:50 手机版
解决时间 2021-03-23 20:38
- 提问者网友:書生途
- 2021-03-22 21:52
如果布尔常量值true赋给一个整型变量,则整型变量的值是??
最佳答案
- 五星知识达人网友:妄饮晩冬酒
- 2021-03-22 23:20
布尔型值本身就是一个整形数(Integer),只不过程序设计语言(比如VB)为了方便编程者使用才设置了True和False这样的常量,但它们的实际值就是-1和0。
为什么非得是-1和0呢?我们来看看:
True = -1(10进制)= &HFFFF(16进制)= 11111111(二进制)
False = 0(10进制)= &H0000(16进制)= 00000000(二进制)
可以看到,-1就是8位均为1的整数,而0则是8位均为0的整数,这也就解释了为什么对True进行Not运算就得到F辅偿滇锻鄄蹬殿拳东哗alse,同理对False进行Not运算就得到True,因为这两个数就是完全相反的数!
所以True的实际值就是-1。你可以在VB的立即窗口自己验证一下:
?true+1
0
?true*100
-100
?true/10
-0.1
看见没有?True是可以直接参与数值运算的!因为它实际上就是-1!
补充一下:如果要把一个普通数值转为布尔值,则VB(其他语言也类似)有这样的规则:任何非零值都是True,0则是False。比如,要判断一个数是否不等于0,一般是这样做的;
If x <> 0 Then
但实际上可以简化为
If x Then
为什么非得是-1和0呢?我们来看看:
True = -1(10进制)= &HFFFF(16进制)= 11111111(二进制)
False = 0(10进制)= &H0000(16进制)= 00000000(二进制)
可以看到,-1就是8位均为1的整数,而0则是8位均为0的整数,这也就解释了为什么对True进行Not运算就得到F辅偿滇锻鄄蹬殿拳东哗alse,同理对False进行Not运算就得到True,因为这两个数就是完全相反的数!
所以True的实际值就是-1。你可以在VB的立即窗口自己验证一下:
?true+1
0
?true*100
-100
?true/10
-0.1
看见没有?True是可以直接参与数值运算的!因为它实际上就是-1!
补充一下:如果要把一个普通数值转为布尔值,则VB(其他语言也类似)有这样的规则:任何非零值都是True,0则是False。比如,要判断一个数是否不等于0,一般是这样做的;
If x <> 0 Then
但实际上可以简化为
If x Then
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯