标题:关于一段简单代码的几个问题
取消只看楼主
Bunny008
Rank: 1
等 级:新手上路
帖 子:185
专家分:6
注 册:2011-7-27
结帖率:62.5%
已结贴  问题点数:20 回复次数:2 
关于一段简单代码的几个问题
For I% = 0 To 7
      If (DataValue% And (2 ^ I%)) Then
         lblBitVal(I%).Caption = Format$(One%, "0")
      Else
         lblBitVal(I%).Caption = Format$(Zero%, "0")
      End If
   Next I%

请教:
1.以上代码,I%的“%”是不是仅代表I是个Integer而已?
2.IF判断是不是说当“(DataValue% And (2 ^ I%))”的值为1的时候,执行下一句,为0的时候,执行Else的语句?
3.当I%=0,DataValue%=254的时候,lblBitVal(0).Caption=?
4.Format$(one%,"0")是什么意思?

谢谢!
搜索更多相关主题的帖子: one 
2012-03-09 23:35
Bunny008
Rank: 1
等 级:新手上路
帖 子:185
专家分:6
注 册:2011-7-27
得分:0 
回复 2楼 Artless
T or F不是逻辑值,0 or 1不是布尔值吗?      '我错了,布尔值是True和False,当用于算术运算中,True当作-1,False当作0.但是什么时候True是1,False是0呢?

DataValue% 和2 ^ I% 都是Integer,那么(DataValue% And (2 ^ I%))的值不是0就是1,而执行的时候,0就认为是F,1就认为是T,这是为什么呢?

运行后,我已经有以下结果:
当I%=0,DataValue%=254的时候,执行lblBitVal(0).Caption=Format$(Zero%, "0")=0;
当I%=1,DataValue%=254的时候,执行lblBitVal(0).Caption=Format$(One%, "0")=1

查资料说Format$是强制转换格式。如果在这里Format$(Zero%,“0”)是把Zero强制返回为一个一位整数0的话,那么为什么不直接写成lblBitVal(0).Caption=0呢?

谢谢!




[ 本帖最后由 Bunny008 于 2012-3-10 03:53 编辑 ]
2012-03-10 03:37
Bunny008
Rank: 1
等 级:新手上路
帖 子:185
专家分:6
注 册:2011-7-27
得分:0 
谢谢wellhide。不过还是不明白为什么不直接赋值为0或1,而是要用format$函数。
2012-03-14 00:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362698-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.108856 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved