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. Cg Programming/Vertex Transformations

    https://en.wikibooks.org/wiki/Cg_Programming/Vertex_Transformations

  2. maxsdk sample中3dsexp.rc点不开并提示specstrings.h中找不到sal.h解法

    在网上下载sal.h文件并拷贝到specstrings.h所在目录(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include)即可. sa ...

  3. 第一篇帖子,就弄个JS动态公告浏览吧,直接上代码

    .scroll{    margin-left:45px;    margin-top:-150px;    height:100px;    width:300px;} <script lan ...

  4. 【性能诊断】十、性能问题综合分析(案例1,windbg、Network Monitor)

    [问题描述]:       产品中某业务功能A,在进行"刷新"->选择制单->新增->切换其他行等一系列操作后,突然发生客户端不响应的现象.       经反复测 ...

  5. eclipse debug小技巧

    测试 Expressions 代码 public static void main(String[] args) { int x=100; System.out.println("----& ...

  6. [转].net 使用NPOI或MyXls把DataTable导出到Excel

    本文转自:http://www.cnblogs.com/yongfa365/archive/2010/05/10/NPOI-MyXls-DataTable-To-Excel-From-Excel.ht ...

  7. Redis集群方案介绍

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...

  8. python学习-day11-内建函数

    python-内建函数 -int:将字符串转换为数字 a = " print(type(a),a) b = int(a) print(type(b),b) num = " v = ...

  9. db4o种纯对象数据库引擎

    db4o是一种纯对象数据库,相对于传统的关系数据库+ORM,db4o具有以下好处:1)以存对象的方式存取数据(废话--,不过你考虑一下完全以对象的方式去考虑数据的存取对传统的数据库设计思维来说是多么大 ...

  10. java和C++在多态实现上的区别

    1:java中没有虚函数的概念,但是有抽 象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某 ...