zoukankan      html  css  js  c++  java
  • Delphi的二進制與八進制、十進制、十六進制轉換

    uses Math;

    //  二進制 --> 十進制

    function BinToTen(s: string): Extended;
    var
      I, iLen: Integer;
    begin
      Result := 0;
      iLen := Length(s);
      for I := 0 to iLen - 1 do
        Result := Result + StrToInt(s[iLen - I]) * Power(2, I);
    end;

    // 十進制 --> 二進制

    function TenToBin(I: Integer): string;
    var
      iMod, iDiv: Integer;
    begin
      Result := '';
      while I > 0 do
      begin
        iDiv := I div 2;
        iMod := I mod 2;
        I := iDiv;
        Result := IntToStr(iMod) + Result;
      end;
    end;

    // 二進制,八進制,十六進制 ---> 十進制

    function XXXToTen(s: string; base: Byte): Extended;
    var
      I, iLen: Integer;
    const
      Convert: string = '0123456789ABCDEF';
    begin
      Result := 0;
      s := UpperCase(s);
      iLen := Length(s);
      if base = 16 then
      begin
        for I := 0 to iLen - 1 do
          Result := Result + (Pos(s[iLen - I], Convert) - 1) * Power(base, I);
      end
      else
      begin
        for I := 0 to iLen - 1 do
          Result := Result + StrToInt(s[iLen - I]) * Power(base, I);
      end;
    end;

    //十進制 -->二進制,八進制,十六進制

    function TenToXXX(I: Integer; base: Byte): string;
    var
      iMod, iDiv: Integer;
    const
      Convert: array[0..15] of Char = '0123456789ABCDEF';
    begin

      Result := '';
      while I > 0 do
      begin
        iDiv := I div base;
        iMod := I mod base;
        I := iDiv;
        if base = 16 then
          Result := Convert[iMod] + Result
        else
          Result := IntToStr(iMod) + Result;
      end;
    end;

  • 相关阅读:
    PHP之十六个魔术方法详解
    PHP之十六个魔术方法详解
    让Docker容器使用静态独立的外部IP(便于集群组建)
    桥接和nat模式区别
    使用 GitHub / GitLab 的 Webhooks 进行网站自动化部署
    docker gitlab
    docker gitlab安装
    docker ui管理工具
    docker 批量删除容器
    Scrapy设置代理
  • 原文地址:https://www.cnblogs.com/markwu/p/1699747.html
Copyright © 2011-2022 走看看