博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi进制转换(二进制/十进制/十六进制)
阅读量:5059 次
发布时间:2019-06-12

本文共 2321 字,大约阅读时间需要 7 分钟。

Delphi进制转换(二进制/十进制/十六进制)  2009-11-27 11:42:24|  分类: 计算机知识 |  标签: |字号大中小 订阅 .

Delphi进制转换(二进制/十进制/十六进制)

2008-08-29 10:24

 

一、完全用API完成:..uses Windows;

function IntToStr(I: integer): string;

begin

   Str(I, Result);

end;

function StrToInt(S: string): integer;

begin

Val(S, Result, Result);

end;

function HexToInt(Const HexValue: String) : Integer;

begin

   Val('$'+HexValue, Result, Result);

end;

function IntToHex(Const Value: Integer): string;

const

   HexChars: array[0..15] of Char = '0123456789ABCDEF';

var

   iTemp: Integer;

   i: Integer;

begin

   Result := '';

   i := 0;

   while i<4 do

   begin

     case i of

       0: iTemp := Value shr 24 and $FF;

       1: iTemp := Value shr 16 and $FF;

       2: iTemp := Value shr 8 and $FF;

       3: iTemp := Value and $FF;

     end;

     Result := Result + HexChars[iTemp div 16];

     Result := Result + HexChars[iTemp mod 16];

     Inc(i);

   end;

end;

function LowerCase(const S: string): String;

begin

   Result:=CharLower(Pchar(S));

end;

function UpperCase(const S: string): String;

begin

   Result:=CharUpper(Pchar(S));

end;

二、函数实现

//十进制 to 二进制

function IntToBin(Value: LongInt;Size: Integer): String;

var

i: Integer;

begin

Result:='';

for i:=Size-1 downto 0 do begin

    if Value and (1 shl i)<>0 then begin

       Result:=Result+'1';

end else begin

       Result:=Result+'0';

end;

end;

end;

//二进制 to 十进制

function BintoInt(Value:   String):   LongInt;

var

      i,Size:   Integer;

begin

      Result:=0;

      Size:=Length(Value);

      for   i:=Size   downto   1   do

      begin

          if   Copy(Value,i,1)='1'   then

              Result:=Result+(1   shl   (Size-i));

      end;

end;

function floatBintoInt(Value:   String):   real;

var

      i,Size:   Integer;

begin

      Result:=0;

      Size:=Length(Value);

      for   i:=Size   downto   1   do

      begin

          if   Copy(Value,i,1)='1'   then

              Result:=Result+1/(1   shl i);

      end;

end;

//十六进制 to 二进制

function HextoBinary(Hex:string):string;

const

    BOX: array [0..15] of string =

         ('0000','0001','0010','0011',

          '0100','0101','0110','0111',

          '1000','1001','1010','1011',

          '1100','1101','1110','1111');

var

    i:integer;

begin

    for i:=Length(Hex) downto 1 do

        Result:=BOX[StrToInt('$'+Hex[i])]+Result;

end;

//十六进制 to 十进制 浮点型

function HextoFloat(s:string):real;

var b,temp:string;

    e:integer;

    f:real;

begin

b:=HextoBinary(s);

temp := copy(b,2,8);

e:=BintoInt(temp)-127;

temp := copy(b,10,23);

f := 1+floatBintoInt(temp);

if(copy(b,1,1)='0')then

    result := power(2,e)*f

else

    result :=-power(2,e)*f;

end;

转载于:https://www.cnblogs.com/ywangzi/archive/2012/12/12/2815219.html

你可能感兴趣的文章
平面最接近点对
查看>>
HTML列表,表格与媒体元素
查看>>
PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点?
查看>>
感谢青春
查看>>
Jquery Uploadify4.2 falsh 实现上传
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
linux基础-命令
查看>>
java对象的深浅克隆
查看>>
Hadoop流程---从tpch到hive
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>
Sublime Text 3 设置
查看>>