tft每日頭條

 > 科技

 > c語言字符串轉十六進制算法

c語言字符串轉十六進制算法

科技 更新时间:2025-01-31 20:16:28

#編程基礎##我要上頭條#

一、字符串轉換為16進制字節數組的步驟

1、将字符串按每兩個字符拆分并插入逗号為分隔符;2、将拆分後的字符串分離為字符串數組;3、将字符串數組轉換成字節數組并檢測字符是否合法;4、将合法轉換後的字節數組輸出;

二、将16進制數字節數組轉換為字符串

1、确定是否需要在字節之間插入空格或其他特殊符号;2、将字節數據轉換為字符;3、将轉換後的字符串連接起來;4、将連接後的字符串輸出;

三、代碼

//字符串轉換為16進制字節數組 private byte[] TranslateStringToHexArray(string AsciiString) { int cnt = 0; string inputAsciiArray= ""; //1、将字符串按每兩個字符拆分并插入逗号為分隔符 for (int i = 0; i < AsciiString.Length; i ) { char temp = AsciiString[i]; if(temp!=' ') { inputAsciiArray = temp; cnt ; if (cnt >= 2) { cnt = 0; inputAsciiArray = ","; } } } //2、将拆分後的字符串分離為字符串數組 string[] bStringArray = inputAsciiArray.Split(new char[] { ',', ' ' }); cnt=0; for (int i = 0; i < bStringArray.Length; i ) { if (bStringArray[i].Trim() != "") cnt ; } byte[] bArray1=new byte[cnt]; cnt = 0; //3、将字符串數組轉換成字節數組并檢測字符是否合法 for (int i = 0; i < bStringArray.Length; i ) { if (bStringArray[i].Trim() != "") { try { bArray1[i] = Convert.ToByte(bStringArray[i].Trim(), 16); cnt ; } catch (Exception E) //發生錯誤時提示非法字符 { //string ErrMsg = " " bStringArray[i] " " E.Message; string ErrMsg = " 第 " (i*2 1).ToString() " 個字符 " bStringArray[i] " 非法 \r\n" E.ToString(); MessageBox.Show(ErrMsg, "提示"); break; } } } //4、将合法轉換後的字節數組輸出 byte[] bArray2 = new byte[cnt]; for (int i = 0; i < cnt; i ) { bArray2[i]=bArray1[i]; } return bArray2; }

//字節數組轉換為字符串 private string TranslateHexArrayToString(byte[] InputByteArray,bool AddBlankFlag) { string HexString = ""; if (AddBlankFlag == true) //确定是否需要插入特殊符号 { for (int i = 0; i < InputByteArray.Length; i ) { HexString = InputByteArray[i].ToString("X2") " "; //字節數據轉換為字符(并插入空格) } } else //字符串終字節間不插入空格 { for (int i = 0; i < InputByteArray.Length; i ) { HexString = InputByteArray[i].ToString("X2"); //字節數據轉換為字符 } } return HexString; }

c語言字符串轉十六進制算法(VS2012C)1

c語言字符串轉十六進制算法(VS2012C)2

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved