救命!!!!诚请教一个有关字节操作的问题!
这个一个与硬件接口的协议:
系统参数设置/系统状态字:PCPABX,回OK .PABXPC,PC回时间
95H 04H 状态字(2) CHK
状态字1:BIT 0 —— 0:话机设置 1:PC设置
BIT 1、2 0:40门 1:80门 2:120门
假设硬件接口已传回数据,我在vb中已存入变量CommReceivedString中
现在我想取出BIT0,BIT1,BIT2的值该怎么弄.
源程序是这么写的:
State1 = (AscB(CommReceivedString)) Mod 2
State2=((AscB(CommReceivedString)) \ 2) Mod 4
不过我看不明白,有谁帮我解读一下,谢谢!
还有我不知道一个字节中的位是从左到右排,还是从右到左排的啊?
问题点数:40、回复次数:4Top
1 楼apple_001(天堂里的狼)回复于 2004-09-04 16:46:26 得分 0
说清楚一点阿Top
2 楼VBDN( PowerBASIC.CN )回复于 2004-09-04 17:16:15 得分 40
呵呵,楼主不是在写电话计费系统吧?
一个字节占8位二进制。一个字节中的位是从右到左排,右边是低位,左边是高位,顺序依次是76543210。
在仔细看看,我们会发现:这个字节所代表的数为偶数时,字节中第0位为1;为奇数时为1。由此可见,我们可以通过判断这个数是奇数还是偶数来判断它的第0为是0,还是1。
程序中通过将这个数除2取余的方法来判断它是奇数还是偶数,其实还有其他办法,比如:
State1=CommReceivedString And 1 '和楼主你程序中代码返回同样的结果。
State2同理。Top
3 楼VBDN( PowerBASIC.CN )回复于 2004-09-04 17:19:27 得分 0
Bit1和Bit2组合成一个数:
00: 40门(0)
01: 80门(1)
10: 120门(2)Top
4 楼joycode(小水滴)回复于 2004-09-09 13:50:14 得分 0
呵,已清楚了,不过谢谢哦Top




