• Delphi中的进制转换


    1.HexToBin() 十六进制转换二进制
    所在单元:Classes
    Delphi语法:
    function HexToBin(Text, Buffer: PChar; BufSize: Integer): Integer 
    描述:
    调用HexToBin函数转换十六进制字符串到相应的二进制值。
    Text是一个表示十六进制值的字符串。
    Buffer返回转换后的二进制结果值。
    BufferSize表示Buffer的大小。Text需要指向至少2*BufSize的十六进制字符,因为每两个十六进制字符表现为一个字节。
    HexToBin返回在Buffer中因为Text没有包含有效的十六进制字符('0'..'f')而还没有被用的字符数量.
    注意:十六进制数必须使用小写字符;HexToBind不能识别大写字符。

    2.BinToHex() 二进制转换十六进制 
    所在单元:Classes
    Delphi语法:
    procedure BinToHex(Buffer, Text: PChar; BufSize: Integer); 
    描述:
    调用BinToHex转换buffer中的二进制值为它所表示的十六进制字符串
    Buffer是一个字节的缓冲区,其中包含二进制值
    Text返回一个以null为结束字符的字符串,表示Buffer作为十六进制数的值
    BufSize表示Buffer的大小。Text需要指向一系列字符,这些字符至少有2*BufSize大小字节。

    3.IntToHex()将整型数转换为十六进制数
    所在单元:SysUtils
    Delphi语法:
    function IntToHex(Value: Integer; Digits: Integer): string; overload;
    function IntToHex(Value: Int64; Digits: Integer): string; overload;
     
    描述:
    IntToHex转换一个数字为这个数字十六进制表示的字符串。Value是要转换的数字。参数Digits指定字符最小宽度,最小宽度不足时将用0填充。

    4.StrToInt()字符串转换成整型数
    所在单元:SysUtils
    Delphi语法:
    function StrToInt(const S: string): Integer; 
    描述:
    返回字符串S转换成整数,字符串非整数表达时将引起异常,十六进制字符串转换为整型数要求在字符串前面添加$即可。

    5.把一个整数变成二进制字符串 
    function IntToBinaryStr(TheVal: LongInt): string;
    var
    counter: LongInt;
    begin
      {This part is here because we remove leading zeros.   That
    means that a zero value would return an empty string.}

      if TheVal = 0 then begin
         result := '0';
         exit;
      end;
       result := '';
       counter := $80000000;
      {Suppress leading zeros}
      while   ((counter and TheVal) = 0) do begin
         counter := counter shr 1;
        if (counter = 0) then break; {We found our first "1".}
      end;
      while counter > 0 do begin
        if (counter and TheVal) = 0 then result := result + '0'
        else   result := result + '1';
         counter := counter shr 1;
      end;
    end;

    // Binary to Integer
    function BinToInt(Value: string): Integer;
    var
    i, iValueSize: Integer;
    begin
       Result := 0;
       iValueSize := Length(Value);
      for i := iValueSize downto do
      if Value[i] = '1' then Result := Result + (1 shl (iValueSize - i));
    end;
  • 相关阅读:
    Spring ApplicationContext 是如何被注入的
    Spring @Controller和@RestController的区别?
    怎样查看 spring IoC 容器有哪些 bean
    YYKit持续补丁 brave
    iOS如何实现多代理模式OC brave
    iOS 之获取IP地址 以及 判断个人热点是否开启 brave
    CGContext 和 CIContext brave
    android 调用微信QQ的其他应用打开列表中添加自己的应用,并且获取uri brave
    CGContext图形上下文详解 brave
    iOS scrollView如何居中缩放 brave
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255096.html
Copyright © 2020-2023  润新知