吧务
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
说到标志很多人都会想到十六进制位运算。。这是微软想到的。
其实我们也可以完全用十进制位
就好比如下:
一个人物时: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形才可以。。
到底该用十六进制,还是该用十进制,我也有点说不清
还有那个好像是二进制位。。。
你们又是怎么用的?