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;
    
  • 相关阅读:
    不在折腾---hbase-0.96.2-hadoop2
    不在折腾---hive-0.13.1-bin
    不在折腾---storm-0.9.2-incubating分布式安装
    zookeeper的zoo.cfg的配置
    Linux常用命令
    不在折腾----zookeeper-3.4.5
    VMware克隆后,网卡若干问题
    防火墙基础技术-02
    JavaScript email格式校验
    js透明按钮图片滑动切换焦点图
  • 原文地址:https://www.cnblogs.com/del/p/1601955.html
Copyright © 2011-2022 走看看