Delphi没有直接提供整形转二进制的函数,就自己写了一个,贴出来与大家共享.
并没有对速度做优化,各位有更新的版本请共享,谢谢!
function
Int2Bin(intVal:
integer
):
string
;
{整形转二进制串}
begin
//
先转为16进制字串,然后从16进制串转为2进制串
return Hex2Bin(Format(
'
%X', [intVal]));
end
;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
function
Hex2Bin(hexVal:
string
):
string
;
{十六进制转二进制串}
Var
mHex:
string
;
begin
mHex :
=
hexVal;
mHex :
=
StringReplace(mHex,
'
0', '0000', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
1', '0001', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
2', '0010', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
3', '0011', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
4', '0100', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
5', '0101', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
6', '0110', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
7', '0111', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
8', '1000', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
9', '1001', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
A', '1010', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
B', '1011', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
C', '1100', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
D', '1101', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
E', '1110', [rfReplaceAll]);
mHex :
=
StringReplace(mHex,
'
F', '1111', [rfReplaceAll]);
Result :
=
mHex;
end
;