0
Q
在.NET
A
回答
4
在.NET結果不會是一個字符串,但一個字節數組。一個字符串由16位char
值組成,因此不便於表示8位數據。
使用方法,這樣得到一個整數的「網絡」表示:
public static byte[] ToNetwork(int value) {
byte[] data = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian) {
Array.Reverse(data);
}
return data;
}
寫字節數組到內存流:
int a = 1;
int b = 42;
byte[] result;
using (MemoryStream m = new MemoryStream()) {
m.Write(ToNetwork(a), 0, 4);
m.Write(ToNetwork(b), 0, 4);
result = m.ToArray();
}
現在你有八個數組字節;大端格式的每個整數。
0
Mono提供了一個很好的打包/解包API,DataConverter(受Perl包和解包函數啓發)。源代碼是在Git中repro(BSD許可證)提供
{
byte [] data = DataConverter.Pack("^II", 12345678, 87654321);
var result = DataConverter.Unpack("^II", data, 0);
Console.Write ("{0}, {1}\n", result[0], result[1]);
}
相關問題
- 1. .net在.net核心MVC 1.0
- 2. 在.NET
- 3. 在.NET
- 4. 在.NET
- 5. 在.NET
- 6. 在.NET
- 7. 在.NET
- 8. 在.NET
- 9. 在.NET
- 10. :在.NET
- 11. 在.NET
- 12. 在.net
- 13. 在.NET
- 14. 在.NET
- 15. 在.NET
- 16. 在.NET
- 17. 在.NET
- 18. 在.NET
- 19. 在.NET
- 20. 在.NET
- 21. 在.net
- 22. 在.NET
- 23. 在.NET
- 24. 在.NET
- 25. 在.NET
- 26. 在.net
- 27. 在.NET
- 28. 在.NET
- 29. 在.NET
- 30. 在.NET
你明白[包語句做什麼(http://perldoc.perl.org/functions/pack.html)?必須嘗試找到匹配的C#方法?如果是的話,你卡在哪裏? – Heinzi