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;

  • 相关阅读:
    注册和登录与数据库内的链接
    数据访问
    马厩分配问题
    Codeforces Round #365 (Div. 2) D.Mishka and Interesting sum
    最优比例生成树模板
    01分数规划模板
    hiho一下第109周《Tower Defense Game》
    begin.BZOJ 1383: 三取方格数
    最小生成树
    Codeforces Round #364 (Div. 1)B. Connecting Universities
  • 原文地址:https://www.cnblogs.com/markwu/p/1699747.html
Copyright © 2011-2022 走看看