在C#中将Byte数组转换为Int-like

时间:2009-04-29 16:42:08

标签: c# integer bytearray

BitConverter.ToUInt16()期望字节被反转,我想这就是它们存储在内存中的方式。但是,如果没有反转,我怎么能转换它,没有修改阵列?

Byte[] ba = { 0, 0, 0, 6, 0, 0 };
BitConverter.ToUInt16(ba, 2); // is 1536/0x0600, but I want 6/0x0006

3 个答案:

答案 0 :(得分:4)

听起来你想要MiscUtil中的EndianBitConverter,它可以指定你是想要使用大字节还是小字节。

基本上它提供与BitConverter相同的功能,但作为实例方法。然后,您可以获得适当类型的EndianBitConverter并随意使用它。

(它提供了更多功能,可以有效地使用数组,这可能对你有用,也可能没用。)

图书馆是在相当宽松的许可证下开源的。

答案 1 :(得分:0)

您也可以使用IPAddress.HostToNetworkOrder。

答案 2 :(得分:-1)

我认为你最好的调用就是用Array.Reverse方法反转数组。

http://msdn.microsoft.com/en-us/library/system.array.reverse(VS.71).aspx