文字列は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(バイト)を返します。 }