V vagabond1998 Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-08 #1 就象c中的那样: struct { byte i : 3; byte j :5; }
W wangkun Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-08 #2 使用TBit对象对位进行操作 有如下属性 property Bits[Index: Integer]: Boolean 可以取得位的状态. 如果是要取得其他系统的参数可以使用屏蔽操作来 达到
M menxin Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-08 #3 delphi中对位的操作有and,or,shr,shl等几个操作符和tbits类,一般来说用操作符 就可以了。
J Jams Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-09 #4 Delphi可以定义类似于C的位域说明,它是以记录的形式模拟的,如: Bityand= Record bit0: Byte; bit1: Byte; .... Bitn: Byte; end; 其中,n>0.
Delphi可以定义类似于C的位域说明,它是以记录的形式模拟的,如: Bityand= Record bit0: Byte; bit1: Byte; .... Bitn: Byte; end; 其中,n>0.
V vagabond1998 Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-21 #5 对不起,前段时间有事,没有及时反馈。 多谢各位的回答。 另外,Jams网友,能否更具体地解释一下您所 提供的方法。 比如,我希望把一个字节的3个bit用来保存字段A, 用5个bit保存字段B ,用您的方法,该怎么表示呢? 谢谢!
对不起,前段时间有事,没有及时反馈。 多谢各位的回答。 另外,Jams网友,能否更具体地解释一下您所 提供的方法。 比如,我希望把一个字节的3个bit用来保存字段A, 用5个bit保存字段B ,用您的方法,该怎么表示呢? 谢谢!
W wangkun Unregistered / Unconfirmed GUEST, unregistred user! 1999-07-21 #6 如果在一个字节中保存几个位域 必须使用屏蔽操作 例如一个字节的低三位表示A 高5位表示B 字节为BY A:=BY and $07 //取得低三位 //$07------>00000111 B:=((BY and $f8) div $8) ^^^^^^^^^^ ^^^^^ // 取得高5位 右移3位 //$f8------>11111000 //$8 ------>00001000
如果在一个字节中保存几个位域 必须使用屏蔽操作 例如一个字节的低三位表示A 高5位表示B 字节为BY A:=BY and $07 //取得低三位 //$07------>00000111 B:=((BY and $f8) div $8) ^^^^^^^^^^ ^^^^^ // 取得高5位 右移3位 //$f8------>11111000 //$8 ------>00001000