字符串与十六进制互转问题,请教
以下代码通过checkbox_显示16进制_CheckedChanged事件判断textbox->text显示字符串方式为十六进制或字符串,已完成字符串转十六进制显示部分,但十六进制转字符串不知怎么实现,
期望String^ str1=AEO 在十六进制显示方式下为 0x41 0x45 0x4f
期望 0x41 0x45 0x4f 显示为AEO
本例代码显示成656998,不知问题出在哪个环节?请高手不吝赐教!
请教
private: System::Void checkbox_显示16进制_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
String^ strs;
String^ strh;
String^ strtemp;
int datarec;
if(checkbox_显示16进制->Checked == true)
{
strs=this->textBox1->Text;
for(int i=0;i<strs->Length;i++)
{
datarec = strs[i];
strh += "0x"+datarec.ToString("X")->PadLeft(2,'0')+" ";
}
this->textBox1->Text = strh;
}
else
{
strh = this->textBox1->Text;
strh = strh->Replace("0x","");
strh = strh->Replace(" ","");
for(int i=0;i<strh->Length;i++,i++)
{
strtemp = strh[i].ToString()+strh[i+1].ToString();
datarec = ConverStrInt(strtemp);
datarec = datarec/10*16+datarec%10;
strs += datarec;
}
this->textBox1->Text = strs;
}
}
------最佳解决方案--------------------strs += datarec;更改为 strs += (char)datarec;看看。
------其他解决方案--------------------怎么没人回复
------其他解决方案--------------------问题已解决,代码如下,多谢Jia_H的回复。
strtemp = strh[i].ToString()+strh[i+1].ToString();
datarec = Convert::ToInt32(strtemp,16);
strs += (Convert::ToChar(datarec)).ToString();