您好,登錄后才能下訂單哦!
本文介紹了C# 用什么方法將BitConverter.ToString產生字符串再轉換回去,分享給大家,具體如下:
byte[] bytTemp = System.Text.Encoding.Default.GetBytes("String"); string str = System.BitConverter.ToString(bytTemp); Console.WriteLine(str); string[] strSplit = str.Split('-'); byte[] bytTemp2 = new byte[strSplit.Length]; for (int i = 0; i < strSplit.Length; i++) bytTemp2[i] = byte.Parse(strSplit[i], System.Globalization.NumberStyles.AllowHexSpecifier); string str2 = System.Text.Encoding.Default.GetString(bytTemp2); Console.WriteLine(str2);
c#bitconverter.ToString轉換為十六進制字符串
我使用 BitConverter.ToString(bytes)將字符串轉換為十六進制字符串,我將其進一步轉換為整數或浮點數。
但是輸入流由0組成,表明字節值為0.所以假設我有一個整數,它由2個字節的輸入表示,從位置x開始,第一個由 EE 組成,而第二個字節為 00 。現在當我使用 BitConverter.ToString(bytes,x,2).Replace( - ”,”)時,輸出為 EE00 ,其整數值為 60928 ,但在這種情況下,輸出應該是 238 字節 EE 為整數。
但在其他情況下,2個字節可能是 EE01 ,其整數值 60929 在這種情況下是正確的。
任何建議如何解決我的問題?
由于有人說這個問題令人困惑,我會重申我的問題我有很長的十六進制字符串作為輸入。在十六進制字符串中,
1)前12個字節表示字符串。
2)接下來的11個字節也代表了其他一些字符串。
3)接下來1個字節表示整數。
4)接下來的3個字節表示整數。
5)接下來的4個字節表示整數。
6)接下來的4個字節表示浮點數。
7)接下來的7個字節表示字符串。
8)接下來的5個字節表示整數。
因此,對于第4種情況,如果字節是ee 00 00,那么我應該忽略0并將ee轉換為整數。但是如果它是ee 00 ee,那么我應該將ee00ee轉換為整數。我每次都會遵循上面提到的相同模式。
我的問題已解決。我正在犯Endianness的錯誤。我收到的數據是EE 00,在轉換為整數之前,我應該將它作為00 EE。感謝所有為我提供解決方案的人,并抱歉錯過了這個重要的問題。
PS:C# 使用BitConverter.ToString(byte[] value)轉換后字符串帶有橫杠“-”,去掉橫杠方法
使用BitConverter.ToString(byte[] value).Replace("-", ""),可去掉橫杠
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。