//Value:二进制字符串如:11000111
Function ConvertBinToStr(Value : ansistring):ansistring; //把二进制数据转化为字符串
Var
tempHex : ansistring;
i, tempInt : integer;
begin
Result := '';
if trim(Value) = '' then Exit;
tempHex := BinToHexEachOther(Value,true);//二进制转成十六进制
i := 0;
Repeat
begin
i := i + 1;
tempInt := HexCharToInt(tempHex[i]);
i := i + 1;
tempInt := tempInt * 16 + HexCharToInt(tempHex[i]);
//以上将两位十六进制数转变为一个十进制数
Result := Result + AnsiChar(TempInt); //转成ASCII码
end;
Until i >= length(tempHex)
end;
//把二进制串转换成十六进制串或相反
function BinToHexEachOther(ValueA : string; Action : Boolean) : string;
var
ValueArray1 : Array [0..15] of string[4];
ValueArray2 : Array [0..15] of char;
i : shortint;
begin
//数组初始化
ValueArray1[0] := '0000'; ValueArray1[1] := '0001'; ValueArray1[2] := '0010';
ValueArray1[3] := '0011'; ValueArray1[4] := '0100'; ValueArray1[5] := '0101';
ValueArray1[6] := '0110'; ValueArray1[7] := '0111'; ValueArray1[8] := '1000';
ValueArray1[9] := '1001'; ValueArray1[10] := '1010'; ValueArray1[11] := '1011';
ValueArray1[12] := '1100'; ValueArray1[13] := '1101'; ValueArray1[14] := '1110';
ValueArray1[15] := '1111';
for i := 0 to 15 do
if i >= 10 then ValueArray2[i] := chr(65 + (i - 10))
else ValueArray2[i] := inttostr(i)[1];
Result := '';
if Action then
begin //二进制串转换成十六进制串
if (Length(ValueA) MOD 4 <> 0) then
ValueA := stringofchar('0',Length(ValueA) MOD 4) + ValueA;
while (Length(ValueA) >= 4) do
begin
for i := 0 to 15 do
if Copy(ValueA,1,4) = ValueArray1[i] then
Result := Result + ValueArray2[i];
ValueA := Copy(ValueA,5,Length(ValueA) - 4);
end;
end
else begin //十六进制串转换成二进制串
while (Length(ValueA) >= 1) do
begin
for i := 0 to 15 do
if Copy(ValueA,1,1) = ValueArray2[i] then
Result := Result + ValueArray1[i];
ValueA := Copy(ValueA,2,Length(ValueA) - 1);
end;
end;
end;
//十六进制字符转换成整数
function HexCharToInt(HexToken : ansichar):Integer;
begin
Result:=0;
if (HexToken>#47) and (HexToken<#58) then { chars 0....9 }
Result:=Ord(HexToken)-48
else
if (HexToken>#64) and (HexToken<#71) then { chars A....F }
Result:=Ord(HexToken)-65 + 10;
end;
分享到:
相关推荐
解决labview字符串转换功能不足,将二进制字符串转变为十进制字符串。
C语言二进制字符串与十六进制字符串相互转化,利用MFC框架生成小工具。
visual c++ 2进制字符串转10进制数
labview2015版本,将二进制的字符串转换成十进制数值,
本资源是ruby代码,提供了一系列封装好的函数,用于快速进行转换,一个函数搞定,包括如下转换,二进制字符串与hex字符串的互转。二进制字符串与整数互转,包括uint8,uin16,uint32, 以及本地字节序和网络字节序两种...
matlab开发-将二进制字符串转换为十进制值。它将二进制流转换为十进制值,每次8位,尽管您可以更改它。
我们都知道在linux下是没有itoa函数的,而又不能通过sprintf实现int转二进制字符串的方式,因此手动编写此代码段,希望可以对大家有帮助。
VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换
Lua小程序十六进制字符串和二进制数据间的转换[借鉴].pdf
数制转换, 将一个十进制整数m转换成 →r(2-16)进制字符串,VB6.0源代码编写
16进制数值向2进制字符串转化的小程序,亲测有效,内部附有解释说明
ASCII转换成十六进制字符串和二进制字符串显示
//十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //输出: 1010 //十进制转十六进制字符串 Console.WriteLine(Convert.ToString(d,16)); //输出: a //二进制字符串转十进制数 string bin = "1010...
适用于在通讯时可以用到的实例,16进制转换为二进制,已经测试OK.
在做嵌入式系统软件开发的时候,为了记录日志以及调试命令,经常要进行二进制数据转换为可打印(显示)的十六进制字符串。本函数实现该功能。
将任意基本类型转换为二进制字符串的C++代码...
NULL 博文链接:https://iszhao.iteye.com/blog/1140899
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
CBinary类,处理二进制与字符串之间的转换
Delphi进制转换,十进制,二进制,十六进制,字符串--超短精简