怎样将字符串转换成十六进制以及其逆转换(翻译四)

 原文连接:

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;
}

 

posted @ 2007-04-14 00:36  T.t.T!Ck.¢#  阅读(17303)  评论(0编辑  收藏  举报