请给我讲讲Delphi中有关位运算的一些知识.

解决方案 »

  1.   

    const
      BitFlag1 = $01;
      BitFlag2 = $02;
      BitFlag3 = $04;
      BitFlag4 = $08;
      BitFlag5 = $10;
      BitFlag6 = $20;
      BitFlag7 = $40;
      BitFlag8 = $80;var
      bFlags: Byte;
    { turn bit 1 on }
    bFlags := bFlags or BitFlag1;
    { turn bit 1 off }
    bFlags := bFlags xor BitFlag1;
    { test bit 1 }
    BitFlag1Signaled := (bFlags and BitFlag1) > 0;
    { 1 << bFlags }
    bFlags shl 1
    { bFlags >> 1 }
    bFlags shr 1
      

  2.   

    { ! bFlags }
    not bFlags
      

  3.   

    加减法不用变,除法就如下处理: c:=trunc(ca/b); //is faster than c:= a div b乘法这么来:
    e:=round(ca*b+cc*d); //is faster than e:=a*b+c*d;
      

  4.   

    shl
    shr
    相当于乘以2和除以2