簡體   English   中英

C#字節格式的區別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM