C 16進文字列の間の#16、及びバイトの配列に変換

文字列は10進数の16進数文字列に変換する方法1.ウィルのC#

コードをコピー
//バイナリ小数ターン
Console.WriteLineを( "166小数バイナリ表現:" + Convert.ToString(166、2)); 
//進小数ターン
Console.WriteLineを( "進166の10進表現:" + Convert.ToString( 166、8)); 
//は小数点六角Console.WriteLineををオン( "10進数16進数166が示す" + Convert.ToString(166、16));   
//バイナリ小数点
Console.WriteLineを( " 111101バイナリ小数表現: "+ Convert.ToInt32(" 111101 "2)); 
// 8進小数ターン
Console.WriteLineを("小数44進表記: "+ Convert.ToInt32(" 44 " 、8))と、 
// 16進数10進数の電源を入れ
ます。Console.WriteLine( "CCの16進数10進数表記:" + Convert.ToInt32( "CC" 、16));
コードをコピー

 

2.シリアル通信処理において、しばしば進バイト配列に文字列を使用して変換します

コードをコピー
ストリングプライベート(ストリングS、エンコードエンコード)StringToHexString 
{ 
    バイト[] B = encode.GetBytes(S);指定されたバイト配列に応じ//ストリング符号化プログラム
    ストリング結果= String.Emptyを、
    Iは<;(I = 0をint型のためb.length; iは、++は)//%で分離され、各バイトの16進文字の変更
    { 
        結果+ = "%" + Convert.ToString(B [I]、16); 
    } 
    戻り値の結果; 
} 

プライベート文字列HexStringToString (HS列は、符号化コード)
{ 
    //文字列は%で分割し、空の文字削除
    列[] = hs.Splitの文字(新しい新しいCHAR [] { '%'}、StringSplitOptions.RemoveEmptyEntries); 
    バイト[] =新しい新しいBをバイト[chars.Length]; 
    文字の16進データ・バイトによって//変更された文字
    のために(INT I = 0;私はchars.Lengthを<; Iは++)
    {
        B [I] = Convert.ToByte(文字[I]、16);
    } 
    //指定されたバイト配列は、文字列の符号化となる
    、戻りencode.GetString(B)
}
コードをコピー

 

進バイト配列の転送文字列

コードをコピー
/// <要約> 
///字符串转16进制字节数组
/// </要約> 
/// <PARAM NAME = "hexString"> </ PARAM> 
/// <戻る> </戻ります> 
プライベート静的バイト[] strToToHexByte(文字列hexString)
{ 
    hexString = hexString.Replace(」」、 ""); 
    (もし!(hexString.Length%2)= 0)
        hexString + = "「; 
    バイト[] returnBytes =新しいバイト[hexString.Length / 2]。
    以下のために(INT i = 0; iは<returnBytes.Length; iは++)
        returnBytes [I] = Convert.ToByte(hexString.Substring(iは2 * 2)、16)。
    returnBytesを返します。
}
コードをコピー

 

16進数の文字列16のバイト配列

コードをコピー
/// <要約> 
///字节数组转16进制字符串
/// </要約> 
/// <PARAM NAME = "バイト"> </ PARAM> 
/// <戻る> </戻ります> 
パブリック静的文字列byteToHexStr(バイト[]バイト)
{ 
    ストリングreturnStr = ""; 
    (!バイト= NULL)であれば
    { 
        ための式(I = 0 int型、I <bytes.Length; iが++)
        { 
            returnStr + =バイト[I] .ToString( "X2")。
        } 
    } 
    戻りreturnStr。
}
コードをコピー

 

16進数に中国語の文字からの変換

コードをコピー

    文字列str = ""; 
    以下のために(INT i = 0; iは<bytes.Length; iは++)
    {
        STR + = String.Formatの( "{0:X}"、バイト[I])。
        IF(fenge &&(I = bytes.Length - 1)!)
        { 
            STR + = String.Formatの( "{0}"、 ""); 
        } 
    } 
    )(str.ToLowerを返します。
}
コードをコピー

 

Hexが漢字に変換しました

コードをコピー
/// <要約> 
///从16进制转换成汉字
/// </要約> 
/// <PARAM NAME = "進"> </ PARAM> 
/// <PARAM NAME = "文字セット">编码、如"UTF-8"、 "2312" </ PARAM> 
/// <戻る> </戻り> 
パブリック静的文字列UnHex(列進文字列の文字セット)
{ 
    IF(六角== NULL)
        新しい例外ArgumentNullExceptionを投げる(「六角「); 
    ヘクス= hex.Replace( ""、 ""); 
    ヘクス= hex.Replace( "の\ n"、 ""); 
    ヘクス= hex.Replace( "\\"、 ""); 
    ヘクス= hex.Replace(」」、 ""); 
    (!hex.Length%2 = 0)であれば
    { 
        六角+ = "20"; 
    //スペース} 
    //は、六角バイト配列に変換する必要があります。
    バイト[]バイト=新しいバイト[ hex.Length / 2]。

    以下のために(INT i = 0; I <bytes.Length; iは++)
    { 
        試みる
        { 
            //每两个字符是一个バイト
            バイト[I] = byte.Parse(hex.Substring(iは、2)、2 * 
            システム。 Globalization.NumberStyles.HexNumber); 
        } 
        キャッチ
        { 
            //カスタムメッセージで例外を再スロー。
            新しいArgumentExceptionが(「!Hexは有効な16進数ではありません」、「進」)を投げます。
        } 
    } 
    System.Text.Encoding CHS = System.Text.Encoding.GetEncoding(文字セット)。
    chs.GetString(バイト)を返します。
}
コードをコピー

おすすめ

転載: www.cnblogs.com/zoujinhua/p/11540964.html