C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉(zhuǎn)換回去
本文介紹了C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉(zhuǎn)換回去,分享給大家,具體如下:
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轉(zhuǎn)換為十六進(jìn)制字符串
我使用 BitConverter.ToString(bytes)將字符串轉(zhuǎn)換為十六進(jìn)制字符串,我將其進(jìn)一步轉(zhuǎn)換為整數(shù)或浮點(diǎn)數(shù)。
但是輸入流由0組成,表明字節(jié)值為0.所以假設(shè)我有一個(gè)整數(shù),它由2個(gè)字節(jié)的輸入表示,從位置x開始,第一個(gè)由 EE 組成,而第二個(gè)字節(jié)為 00 ?,F(xiàn)在當(dāng)我使用 BitConverter.ToString(bytes,x,2).Replace( - ”,”)時(shí),輸出為 EE00 ,其整數(shù)值為 60928 ,但在這種情況下,輸出應(yīng)該是 238 字節(jié) EE 為整數(shù)。
但在其他情況下,2個(gè)字節(jié)可能是 EE01 ,其整數(shù)值 60929 在這種情況下是正確的。
任何建議如何解決我的問題?
由于有人說這個(gè)問題令人困惑,我會重申我的問題我有很長的十六進(jìn)制字符串作為輸入。在十六進(jìn)制字符串中,
1)前12個(gè)字節(jié)表示字符串。
2)接下來的11個(gè)字節(jié)也代表了其他一些字符串。
3)接下來1個(gè)字節(jié)表示整數(shù)。
4)接下來的3個(gè)字節(jié)表示整數(shù)。
5)接下來的4個(gè)字節(jié)表示整數(shù)。
6)接下來的4個(gè)字節(jié)表示浮點(diǎn)數(shù)。
7)接下來的7個(gè)字節(jié)表示字符串。
8)接下來的5個(gè)字節(jié)表示整數(shù)。
因此,對于第4種情況,如果字節(jié)是ee 00 00,那么我應(yīng)該忽略0并將ee轉(zhuǎn)換為整數(shù)。但是如果它是ee 00 ee,那么我應(yīng)該將ee00ee轉(zhuǎn)換為整數(shù)。我每次都會遵循上面提到的相同模式。
我的問題已解決。我正在犯Endianness的錯(cuò)誤。我收到的數(shù)據(jù)是EE 00,在轉(zhuǎn)換為整數(shù)之前,我應(yīng)該將它作為00 EE。感謝所有為我提供解決方案的人,并抱歉錯(cuò)過了這個(gè)重要的問題。
PS:C# 使用BitConverter.ToString(byte[] value)轉(zhuǎn)換后字符串帶有橫杠“-”,去掉橫杠方法
使用BitConverter.ToString(byte[] value).Replace("-", ""),可去掉橫杠
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Unity報(bào)錯(cuò)InvalidOperationException: out of sync的解決
今天在做個(gè)東西,發(fā)現(xiàn)報(bào)錯(cuò),特此來記錄一下,本文介紹了Unity報(bào)錯(cuò)InvalidOperationException: out of sync的解決,感興趣的可以了解一下2021-05-05C#實(shí)體類轉(zhuǎn)換的兩種方式小結(jié)
這篇文章主要介紹了C#實(shí)體類轉(zhuǎn)換的兩種方式小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Unity UGUI的InputField輸入框組件使用詳解
這篇文章主要為大家介紹了Unity UGUI的InputField輸入框組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07C#怎樣實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳
這篇文章主要介紹了C#怎樣實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳,對斷點(diǎn)續(xù)傳感興趣的同學(xué),可以參考下2021-04-04C#動態(tài)代碼生成控件后其他事件不能獲取該控件值的解決方法
這篇文章主要給大家介紹了關(guān)于C#動態(tài)代碼生成控件后其他事件不能獲取該控件值的解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07C#?HttpClient超時(shí)重試機(jī)制詳解
超時(shí)重試的實(shí)現(xiàn)方式可以使用循環(huán)結(jié)構(gòu),在請求發(fā)起后等待一定時(shí)間,若超時(shí)未收到響應(yīng),則再次發(fā)起請求,循環(huán)次數(shù)可以根據(jù)實(shí)際情況進(jìn)行設(shè)置,一般建議不超過三次,這篇文章主要介紹了C#?HttpClient超時(shí)重試,需要的朋友可以參考下2023-06-06C# 動態(tài)輸出Dos命令執(zhí)行結(jié)果的實(shí)例(附源碼)
這篇文章主要介紹了C# 動態(tài)輸出Dos命令執(zhí)行結(jié)果的實(shí)例,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07