首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么将文本框内二进制数转16进制数

2012-03-21 
如何将文本框内二进制数转16进制数如:我在EDIT框中输入字符 00101011 即,我想得到转成16进制数的“2B”如:

如何将文本框内二进制数转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;
}

热点排行