http://www.cnblogs.com/ywangzi/archive/2012/12/12/2815219.html

 

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;

Delphi进制转换(二进制/十进制/十六进制)的更多相关文章

  1. C# 进制转换(二进制、十六进制、十进制互转)

    原文地址:https://www.cnblogs.com/icebutterfly/p/8884023.html C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所 ...

  2. C# 进制转换(二进制、十六进制、十进制互转) 转载 https://www.cnblogs.com/icebutterfly/p/8884023.html

    C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示例如: 二进制: 1010 表示为 字符串:"1010" int ...

  3. python的进制转换二进制,八进制,十六进制及其原理

    #!usr/bin/env python# coding:utf-8def binary(): '''二进制的方法与算法'''    Number = 10    Number1 = 20    Nu ...

  4. Python 进制转换 二进制 八进制 十进制 十六进制

    Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html 全局定义一定不 ...

  5. Java 进制转换(二进制(负),八进制,十进制,十六进制),位运算、逻辑运算(2)

    负数的二进制表现形式:其实就是该数的绝对值取反+1. 进制转换(二进制,八进制,十进制,十六进制),原理解析 十六进制的表现形式: (2)(与.异或.左移.右移.三元运算符)

  6. C++进制转换(十进制转二进制、八进制、随意进制)

    十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int ...

  7. delphi -- 进制转换 函数表

    1.16 TO 10 ******************************************************** 16转10,否则输出-1 function Hex(c: cha ...

  8. Python进制转换(二进制/八进制/十进制/十六进制)

    Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html 全局定义 ba ...

  9. Bugku-CTF加密篇之进制转换(二进制、八进制、十进制、十六进制,你能分的清吗?)

    进制转换 二进制.八进制.十进制.十六进制,你能分的清吗?

随机推荐

  1. Asp.net中从后台中如何获取html控件

    比如定义html的文本框如下: <input  type="text" onclick="fun()" id="htmlTxtDate" ...

  2. 数据接口管理工具 thx RAP

    RAP是数据接口管理工具.在开发时前端将请求转至RAP,由RAP提供模拟数据:而后端使用RAP测试接口的正确性.这样RAP就成为了开发过程中的强 依赖,进而确保接口文档的实时正确性.RAP采用JSON ...

  3. 使用注解来构造IoC容器

    用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package=”pagkage1[,p ...

  4. SqlServer性能急剧下降,查看所有会话的状态及等待类型---Latch_Ex

    当某个数据库文件空间用尽,做自动增长的时候,同一时间点只能有一个用户人员可以做文件自动增长动作,其他任务必须等待,此时会出现Latch资源的等待.使用sp_helpdb查看业务数据库时发现:该数据库设 ...

  5. ASP.NET MVC 出现错误 “The view 'XXX' or its master was not found or no view engine support”

    来自:http://www.dengyukeji.com/archiver/tid-151.html 错误如下:The view 'XXX' or its master was not found o ...

  6. OData services入门----使用ASP.NET Web API描述

    http://www.cnblogs.com/muyoushui/archive/2013/01/27/2878844.html ODate 是一种应用层协议,设计它的目的在于提供一组通过HTTP的交 ...

  7. 51nod 1392 装盒子

    有n个长方形盒子,第i个长度为Li,宽度为Wi,我们需要把他们套放.注意一个盒子只可以套入长和宽分别不小于它的盒子,并且一个盒子里最多只能直接装入另外一个盒子 (但是可以不断嵌套),例如1 * 1 可 ...

  8. makefile学习笔记(多目录嵌套调用、变量使用)

    http://blog.csdn.net/leexiang_han/article/details/9274229   学习了几天的makefile的嵌套调用编写也有一些心得,先声明,我也是初学者写文 ...

  9. source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的左面

    在source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的左面.我想把它设定为 粘贴后,光标移动倒粘贴内容的右面. 该怎么做? 这是个设置问题,按照下面的步骤设定就可以了. Opt ...

  10. oracle学习笔记(四)oracle内存优化

    emca -config dbcontrol db -repos recreate 解决'oracle Environment variable ORACLE_SID not defined. Ple ...