delphi里如何进行快速的位操作???比如我想把某个字节的某位和另一个字节的某位提出,合成新的字节,有什么快速的办法吗?

解决方案 »

  1.   

    mov EBX, n    ; 第 n 位
    and EAX, EBX  ;
    mov  CX, m    ; 移 m 位
    shl EAX, CX   ; shr EAX, CX; shl/shr EAX, 1  ; 移位
    mov EBX, 要合成的另一部分数据
    or  EAX, EBX  ; EAX 中为结果Result := ((A and n) shr m) or B;   // 比上面的慢吗? 不见得有多大差别
      

  2.   

    Delphi中的And,Or本身也是位操作符,以下是Delpi中的位操作列表
    Operator Operation Operand types Result type Examples
    not bitwise negation integer integer not X
    and bitwise and integer integer X and Y
    or bitwise or integer integer X or Y
    xor bitwise xor integer integer X xor Y
    shl bitwise shift left integer integer X shl 2
    shr bitwise shift right integer integer Y shr I
      

  3.   

    这里不必使用汇编代码
    汇编在提高效率上无非就是在操作硬件等的时候占优势除了这个
    还不如自己自己用delphi写
      

  4.   

    TBits类,它可以满足你的要求.
    一个TBits类可以理解成一个以boole为类型的数组,
    很不错.帮助里有很详细的资料
      

  5.   

    呵呵已经不用补充了http://lysoft.7u7.net