0

BitConverter.ToUInt16() 期望字节被反转,我猜这就是它们在内存中的存储方式。但是,当它没有被反转时,我如何转换它,而无需修改数组?

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

3 回答 3

4

听起来你想要 my EndianBitConverterin MiscUtil,它可以让你指定是要使用大端还是小端。

BitConverter基本上,它提供与实例方法相同的功能。然后你得到合适的类型EndianBitConverter并用它做你想做的事。

(它为高效处理数组提供了更多功能,这可能对您有用,也可能没用。)

该库是在相当宽松的许可证下开源的。

于 2009-04-29T16:46:06.483 回答
0

您也可以使用 IPAddress.HostToNetworkOrder。

于 2009-04-29T16:48:14.760 回答
-1

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

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

于 2009-04-29T16:45:39.493 回答