T Tigerchamp Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-23 #1 想写一段代码,对一组状态字操作,希望方便地确定每一位是‘1’或‘0’,或置位。想通过字符串进行转换,但觉得可能很笨,我想DELPHI应该会有此类函数,不知哪位大侠可能帮忙。
曹 曹晓钢 Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-23 #2 试一试 TBits类,它可以满足你的要求. 一个TBits类可以理解成一个以boole为类型的数组, 很不错. 帮助里有很详细的资料,我想就不用多说了. 连例子都有.
D dubhe Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-23 #3 delphi有现成的位操作符:not,and,or,xor,shl,shr 我想即使不看帮助也该知道怎么用吧.
J jiangtao Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-23 #4 TBit = 0..31; { bit manipulating } function bitSet(const Value: Int_ const TheBit: TBit): Boolean; begin Result:= (Value and (1 shl TheBit)) <> 0; end; function bitOn(const Value: Int_ const TheBit: TBit): Int_; begin Result := Value or (1 shl TheBit); end; function bitOff(const Value: Int_ const TheBit: TBit): Int_; begin Result := Value and ((1 shl TheBit) xor $FFFFFFFF); end; function bitToggle(const Value: Int_ const TheBit: TBit): Int_; begin result := Value xor (1 shl TheBit); end; Delphi 本身提供的TBits也不错。 使用方法: mybits := TBits.Create; Mybits.Size:=5; Mybits.bits:=True
TBit = 0..31; { bit manipulating } function bitSet(const Value: Int_ const TheBit: TBit): Boolean; begin Result:= (Value and (1 shl TheBit)) <> 0; end; function bitOn(const Value: Int_ const TheBit: TBit): Int_; begin Result := Value or (1 shl TheBit); end; function bitOff(const Value: Int_ const TheBit: TBit): Int_; begin Result := Value and ((1 shl TheBit) xor $FFFFFFFF); end; function bitToggle(const Value: Int_ const TheBit: TBit): Int_; begin result := Value xor (1 shl TheBit); end; Delphi 本身提供的TBits也不错。 使用方法: mybits := TBits.Create; Mybits.Size:=5; Mybits.bits:=True