gpt4 book ai didi

c# - 如何使用 BinaryReader 正确读取 16 字节无符号整数

转载 作者:行者123 更新时间:2023-11-30 17:22:02 25 4
gpt4 key购买 nike

我需要在 .NET 中解析二进制流以转换 16 字节无符号整数。我想使用 BinaryReader.ReadUIntXX() 函数,但没有可用的 BinaryReader.ReadUInt128() 函数。我假设我将不得不使用 ReadByte 函数滚动我自己的函数并构建一个数组,但我不知道这是否是最有效的方法?谢谢!

最佳答案

我很乐意将此归功于此,但只要快速搜索一下网络,中提琴:

http://msdn.microsoft.com/en-us/library/bb384066.aspx

这是代码示例(位于同一页面上)

byte[] bytes = { 0, 0, 0, 25 };

// If the system architecture is little-endian (that is, little end first),
// reverse the byte array.
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes);

int i = BitConverter.ToInt32(bytes, 0);
Console.WriteLine("int: {0}", i);
// Output: int: 25

大多数开发人员唯一不知道的是大端和小端之间的区别。就像生活中的大多数事情一样,人类根本无法就非常简单的事情达成一致(左手和右手汽车也是一个很好的例子)。当位(记住 1 和 0 以及二进制数学)被布置时,位的顺序将决定字段的值。一个字节是八位..然后是有符号和无符号..但让我们坚持顺序。数字 1(一)可以用两种方式之一表示,10000000 或 00000001(详细解释请参阅注释中的说明)- 正如代码中的注释所暗示的那样,big-endian 是前面的那个,litte -endian 是零。 (参见 http://en.wikipedia.org/wiki/Endianness - 对不起新用户,他们不会让我超链接不止一次....)为什么我们不能都同意???

我多年前在处理嵌入式系统时吸取了这个教训……还记得链接吗? :) 我是不是暴露年龄了??

关于c# - 如何使用 BinaryReader 正确读取 16 字节无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com