怎样将字符串转换成十六进制以及其逆转换(翻译四)
http://www.c-sharpcorner.com/UploadFile/Joshy_geo/
HexConverter10282006021521AM/HexConverter.aspx
怎样将字符串转换成十六进制以及其逆转换。
背景
本文将告诉你怎样将字符串转换成十六进制以及其逆转换。
我为我的智能卡应用而做的这个程序。较早前,我用VB写了一个但是现在我不得不将我的代码转换成C#.通常智能卡都是以十六进制的格式来写入数据的。因为我没有一个好的十六进制转换器来帮我完成这些转换,我不得不自己动手了。
代码
主要转换代码来自Microsoft.VisualBasic类。下面的代码就是将字符串转换成十六进制格式。我们不能直接将所有的字符都转换成十六进制 (例如:@#$%^&*()),因此我首先需要获得字符的ASCII码,然后再将ASCII码转换成十六进制。
//为此我用了一个while 循环
while (Data.Length > 0)
{
//首先用substring 来获取每一个字符
sValue= Data.Substring(0, 1).ToString()
//然后将字符转换成ascii
sValue= Strings.Asc(sValue)
//然后将ascii值转换成十六进制
sValue = Conversion.Hex(sValue)
//转换后就去掉该字符
Data = Data.Substring(1, Data.Length - 1);
sHex = sHex + sValue;
}
在这个应用中我使用了两个函数
Data_Hex_Asc(data)
这个函数负责将字符转换成十六进制
public string Data_Hex_Asc(ref string Data)
{
string Data1 = "";
string sData = "";
while (Data.Length > 0)
//first take two hex value using substring.
//then convert Hex value into ascii.
//then convert ascii value into character.
{
Data1 = System.Convert.ToChar(System.Convert.ToUInt32(Data.Substring(0, 2), 16)).ToString();
sData = sData + Data1;
Data = Data.Substring(2, Data.Length - 2);
}
return sData;
}
Data_Asc_Hex(data)
这个函数负责将十六进制转换成字符
public string Data_Asc_Hex(ref string Data)
{
//first take each charcter using substring.
//then convert character into ascii.
//then convert ascii value into Hex Format
string sValue;
string sHex = "";
while (Data.Length > 0)
{
sValue = Conversion.Hex(Strings.Asc(Data.Substring(0, 1).ToString()));
Data = Data.Substring(1, Data.Length - 1);
sHex = sHex + sValue;
}
return sHex;
}