所以我創建一個程序,讀取字節數組,並返回值如何使用全十六進制值從字節數組中返回一個字節?
byte[] buffer1 = File.ReadAllBytes(path).Skip(startPos).Take(lengthToExtract).ToArray();
byte[] reversed = buffer1.Reverse().ToArray();
string buffer2 = "";
foreach (var i in reversed)
{
buffer2 = buffer2 + i.ToString("X") + " ";
}
MessageBox.Show(buffer2);
int size = int.Parse(buffer2.Replace(" ", string.Empty), System.Globalization.NumberStyles.HexNumber);
return size;
但是,當我得到的消息框的值的十六進制字符串緩衝區的價值就取出了「不重要」六角數量出來,這弄亂了我的價值。例如,如果讀取的字節是0x00,它將返回值爲0,並且我正在向後讀取結果字節,因此:0x04080(0 4 0 80)與0x0040080(00 04 00 80)不同。我需要幫助,這會擾亂我的整個計劃。
你行 - 他們將解決這兩個問題這將防止一堆額外的字符串被創建。 +1雖然使用StringBuilder來防止垃圾回收器生氣。可以更進一步,並使其成爲'StringBuilder sdata = new StringBuilder(data.Length * 2);' –
@LeeHiles當然。那些將會有所改進 –