关于用数子计算标志
vb吧
全部回复
仅看楼主
吧务
level 13
标志确实可以省掉不少的变量。
说到标志很多人都会想到十六进制位运算。。这是微软想到的。
其实我们也可以完全用十进制位
就好比如下:
一个人物时:1表示向上走,2表示向下走,3表示向左走,4表向左走,5表示向左上,6表示向右上,7表示右下,8表示左下
当两个人物时也可以用21表示一个人向上走,一个人向下走
有人会说十进制没有十六方便,可以用Or Xor And 但是事实上都要用到判断语句去查
例如:
要用十六进制表示人物状态
1表示向上走,2表示向下走,4表示向左走,8表向左走
上面看上去确实很方便只用四个标志就能表示8个方向,但是实际上判断起来就麻烦了比如
要检察一个复合标制 10 就要做如下判断
a=10
if (a and 8)=8 then
'吐血从这里开始,你还要加上一个IF
IF (a and 2)=2 then
msgbox "向左下走"
Else
msgbox "向左下走"
endif
endif
你一定会说也可以定义8个方向,这样确实可以少做判断,但是复合标志就没有意义了。
当然十进制也不是最好的,比如
一个翻方块游戏,只有两种颜色 黑 白 0,1
这时的十进制就有点背锯同样是一个变量表示3*3的正方形
当所有块为白时,十六进制表示&H1FF就可以了也就是一个Integer变量
而十进确要这样做111111111这个要Long形才可以。。
到底该用十六进制,还是该用十进制,我也有点说不清
还有那个好像是二进制位。。。
你们又是怎么用的?
2012年08月25日 10点08分 1
吧务
level 13
当不会进行位运算的时候,我倒是想用十进制,方便嘛。
纠正一下,And Or Xor 这些是二进制的运算……
2012年08月25日 11点08分 2
一个变量有多个相同的东西,并且十个以下时可以用。。。
2012年08月26日 06点08分
level 10
一个变量表示3*3的正方形
全是白色的正方形就 = 0 了...
2012年08月25日 12点08分 3
那么,第三个黑,第六个白,第七个黑怎么表示?
2012年08月26日 06点08分
回复 《顾名思义》 :按你说的那样表示呗 我那贴的意思是用数值型变量数位不固定
2012年08月26日 06点08分
回复 leon2 :[啊!]必须固定啊。。。
2012年08月26日 13点08分
1