如何将文本框内二进制数转16进制数
如:我在EDIT框中输入字符 "00101011" 即,我想得到转成16进制数的“2B”
如:我在EDIT框中输入字符 "10101111" 即,我想得到转成16进制数的“AF”
是否有现成的函数,或相关的算法。
[解决办法]
现写的:
AnsiString a="00101011";
__int64 TEMPdword=0;
int tempint;
for(int i=0;i<a.Length();i++)
{
tempint = StrToInt(a[i+1]);
TEMPdword += tempint*(pow(2,(7-i)));
}
ShowMessage(IntToHex(TEMPdword,2));
[解决办法]
void __fastcall TForm1::Button8Click(TObject *Sender)
{
AnsiString hex = "";
int I = 0;
for (int i = 1; i <= Edit1->Text.Length(); i++)
{
if (Edit1->Text[i] == '1')
I |= 1;
if (i % 4 == 0 || i == Edit1->Text.Length())
{
hex += IntToHex(I, 1);
I = 0;
}
else
I <<= 1;
}
Label1->Caption = hex;
}