Dephi中能否对bit进行操作,如果能,如何操作?

解决方案 »

  1.   

    Delphi中有个TBits类,在Classes.pass中。不过用起来多少有些累赘感,直接以BYTE形式来操作也不错,看你的应用情况了。
      

  2.   

    谢谢,byte是字符类型,能进行bit操作吗?比如说,我想统计通信系统的误码率,如何做?
      

  3.   

    var
      bit : TBits;
      Data : Int64;  Data1 : Byte;
      bit1 : array [0..7] of Byte;  i : Integer;
    begin
      bit := TBits.Create;
      bit.Size := 64;
      Data := $f0f0f0f0f0f0f0f0;  for i:=63 downto 0 do
        bit.Bits[63-i] := Boolean( (Data shr i) and $1);  for i:=0 to bit.Size-1 do
        ShowMessage(IntToStr(Integer(bit.Bits[i])));
      bit.Free;  Data1 := $f0;
      for i:=7 downto 0 do
        bit1[7-i] :=  (Data1 shr i) and $1;
      for i:=0 to 7 do
        ShowMessage(IntToStr(bit1[i]));end;
      

  4.   

    楼上的不用那么复杂吧?Delphi里的位操作和C++是一样的,只不过是用 and 代替 &and 在对 Boolean 类型的变量相当于 &&
    对 Integer 类型相当于 &
      

  5.   

    位操作运算符:and 位与 or  位或not 取反xor 异或shl 位左移shr 位右移
      

  6.   

    谢谢,不过我要的不是位操作符,而是象6、8楼所讲的bit类。
    有没有同步串行通信的方法