[英]Difference between C# byte format
我正在嘗試通過我的 xampp 服務器下載一些字節以在我的 C# 程序中使用它,但字節長度之間存在差異,如下所示:
WebClient wc = new WebClient();
byte[] bytesweb = wc.DownloadData(@"http://127.0.0.1/test.txt");
int lenweb = bytesweb.Length; //The value of lenweb is 69
然后當我直接在程序中使用相同的字節時,如下所示:
byte[] bytesapp = new byte[] { 0x00, 0x00, 0x40, 0x00, 0x00, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x40 };
int lenapp = bytesapp.Length; //The value of lenapp is 11
所以我不明白這兩個之間發生了什么變化,在使用我的服務器導入長度值時該怎么做才能使長度值等於“11”
注意:“test.txt”的值為:{ 0x00, 0x00, 0x40, 0x00, 0x00, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x40 };
注意:“test.txt”的值為:
{ 0x00, 0x00, 0x40, 0x00, 0x00, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x40 };
因此,您的文件包含文字文本{ 0x00, 0x00, 0x40, 0x00, 0x00, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x40 };
.
這是一個69 字節的文本,當被解釋為 C# 代碼片段時,表示一個11 字節的字節數組。 這解釋了您看到的差異。
你如何解決這個問題? 不要將字節 arrays 存儲為文本,將它們存儲為字節:
byte[] bytesapp = new byte[] { 0x00, 0x00, 0x40, 0x00, 0x00, 0xe8, 0x10, 0x00, 0x00, 0x00, 0x40 };
// This creates the file you want to put on your web server.
File.WriteAllBytes(@"C:\temp\test.bin", bytesapp);
(或者,您可以編寫代碼來解析您的文本文件並將其轉換為“真正的”字節數組。如果您以以下格式存儲數據,此問題包含可以為您執行此操作的示例代碼: 0000400000e81000000040
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.