zoukankan      html  css  js  c++  java
  • 反转内存的函数


    //按单字节反转内存的函数
    procedure ReverseMemory(P: PByte; Len: Integer); overload;
    var
      B: Byte;
      P2: PByte;
    begin
      P2 := P;
      Inc(P2, Len - 1);
      while Integer(P) < Integer(P2) do
      begin
        B := P^;
        P^ := P2^;
        P2^ := B;
        Inc(P);
        Dec(P2);
      end;
    end;
    
    //按双字节反转内存的函数
    procedure ReverseMemory(P: PWord; Len: Integer); overload;
    var
      W: Word;
      P2: PWord;
    begin
      P2 := P;
      Inc(P2, Len div 2 - 1);
      while Integer(P) < Integer(P2) do
      begin
        W := P^;
        P^ := P2^;
        P2^ := W;
        Inc(P);
        Dec(P2);
      end;
    end;
    
    //按四字节反转内存的函数
    procedure ReverseMemory(P: PInteger; Len: Integer); overload;
    var
      I: Integer;
      P2: PInteger;
    begin
      P2 := P;
      Inc(P2, Len div 4 - 1);
      while Integer(P) < Integer(P2) do
      begin
        I := P^;
        P^ := P2^;
        P2^ := I;
        Inc(P);
        Dec(P2);
      end;
    end;
    
    //调用测试
    procedure TForm1.Button1Click(Sender: TObject);
    var
      bs: TBytes;
      i: Integer;
    begin
      SetLength(bs, 8);
      for i := 0 to Length(bs) - 1 do bs[i] := i + 49;
      ShowMessage(StringOf(bs)); {12345678}
    
      for i := 0 to Length(bs) - 1 do bs[i] := i + 49;
      ReverseMemory(PByte(bs), Length(bs));
      ShowMessage(StringOf(bs)); {87654321}
    
      for i := 0 to Length(bs) - 1 do bs[i] := i + 49;
      ReverseMemory(PWord(bs), Length(bs));
      ShowMessage(StringOf(bs)); {78563412}
    
      for i := 0 to Length(bs) - 1 do bs[i] := i + 49;
      ReverseMemory(PInteger(bs), Length(bs));
      ShowMessage(StringOf(bs)); {56781234}
    end;
    
  • 相关阅读:
    "rel=nofollow"属性简介
    js获取微信code
    css--clearfix浮动
    css3--之HSL颜色
    数据库列名为关键字如何搜索
    flexigrid
    easyui-dialog
    关于在jsp中的表达式
    jquery 中 $('div','li')
    myeclipse中常用的快捷键
  • 原文地址:https://www.cnblogs.com/del/p/1601955.html
Copyright © 2011-2022 走看看