具体问题是这样的:如果吧一帧数据读入到buffer中,我还需要把这帧数据安位分开(数据是二进制形式的),每一位代表不同的参数。改如何操作呢?

解决方案 »

  1.   

    shl(v,n)
    shr(v,n)
    and 
    or
      

  2.   

    function BitIsHigh(X:byte; Index:integer):boolean;
    var
      ch: byte;
    begin
      ch := x;
      ch := ch shr index;
      ch := ch and 1;
      Result := (ch = 1);
    end;procedure SetBit(var X:byte; Index:integer; HighValue:boolean);
    var
      ch,ch1: byte;
    begin
      if Highvalue then
      begin
        ch := 1;
        ch := ch SHL Index;
        X := X OR ch;
      end else
      begin
        ch := $FF;
        ch := ch SHR index;
        DEC(ch);
        ch := ch SHL index;
        ch1 := $FF;
        ch1 := ch1 SHR (8-index);
        ch := ch OR ch1;
        X := X and ch;
      end;
    end;