Delphi进制转换(二进制/十进制/十六进制)
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进制转换(二进制/十进制/十六进制)的更多相关文章
- C# 进制转换(二进制、十六进制、十进制互转)
原文地址:https://www.cnblogs.com/icebutterfly/p/8884023.html C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所 ...
- C# 进制转换(二进制、十六进制、十进制互转) 转载 https://www.cnblogs.com/icebutterfly/p/8884023.html
C# 进制转换(二进制.十六进制.十进制互转)由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示例如: 二进制: 1010 表示为 字符串:"1010" int ...
- python的进制转换二进制,八进制,十六进制及其原理
#!usr/bin/env python# coding:utf-8def binary(): '''二进制的方法与算法''' Number = 10 Number1 = 20 Nu ...
- Python 进制转换 二进制 八进制 十进制 十六进制
Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html 全局定义一定不 ...
- Java 进制转换(二进制(负),八进制,十进制,十六进制),位运算、逻辑运算(2)
负数的二进制表现形式:其实就是该数的绝对值取反+1. 进制转换(二进制,八进制,十进制,十六进制),原理解析 十六进制的表现形式: (2)(与.异或.左移.右移.三元运算符)
- C++进制转换(十进制转二进制、八进制、随意进制)
十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int ...
- delphi -- 进制转换 函数表
1.16 TO 10 ******************************************************** 16转10,否则输出-1 function Hex(c: cha ...
- Python进制转换(二进制/八进制/十进制/十六进制)
Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html 全局定义 ba ...
- Bugku-CTF加密篇之进制转换(二进制、八进制、十进制、十六进制,你能分的清吗?)
进制转换 二进制.八进制.十进制.十六进制,你能分的清吗?
随机推荐
- 木匠ing[索引]
古人有云,一个不会写代码的木匠不会是个好厨子. 为了响应这个号召,开始我的木工之路. 首先介绍一个网站,www.zuojiaju.com 木工爱好者 ,里面有大量的关于木匠的帖子,感谢一下. 以前只是 ...
- 用Javascript弹出div定义的消息框并往块里面填写文字
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- vs2012 Nuget错误:“未能解析此远程名称api.nuget.org”
今天在使用vs2012的Nuget功能向新建MVC项目中添加bootstrap时出现一个错误:“未能解析此远程名称api.nuget.org”: 网上查阅资料得知:nuget.org使用的godadd ...
- CSS 使用小结
1.文字过长显示省略号(....) white-space: nowrap;overflow: hidden;text-overflow: ellipsis; 2.获取当前的ID : <asp ...
- maven本地仓库
引入某一个站点的jar包 <repositories> <repository> <id>maven.seasar.org</id> <name& ...
- jquery 事件绑定以及解绑定
var targetSelect = $("#@(Perfix)tbData tbody tr select[data-target]"); targetSelect.off(&q ...
- OC-设计模式KVC+KVO定义及使用
一.KVC Key-Value-Coding 键值编码(KVC:是一种存取值的方式,通过key存value 或者通过key获取value key从哪里来的呢? key 把对象里面的属性名.变量名当作了 ...
- HTML常用标签(自用,可能不严谨,勿怪)
html标签中‘<’和‘>’默认被占用,如果想要显示出这些符号,就需要使用特殊字符来实现'<':使用<实现'>':使用>实现空格:html中再多的空格默 ...
- android学习笔记27——Activity
Activity配置==> android应用程序要求所有的应用程序组件都需要进行显示配置后,才可正常使用.包括:Activity.Service.BroadCastReceiver.Conte ...
- golang rbac框架
在 https://github.com/mikespook/gorbac/tree/v1.0 github上新的版本是开发板,得用这里的老版 demo package main import ( & ...