c# - 将整个 byte[] 转换为 uint

标签 c# .net

我的代码中有byte[] srno

byte[] srno = new byte[6];

srno[0] = 0xff;
srno[1] = 0x0f;
srno[2] = 0x24;
srno[3] = 0x12;
srno[4] = 0x16;
srno[5] = 0x0a;

现在我希望这个值像 uint 一样

uint a = 0xff0f2412160a;

如何转换?

最佳答案

正如@animaonline 建议的那样,您应该使用 BitConverter 将字节数组转换为 uint 或 *ulong。因此你有 6 个字节,uint 对你来说太小了。您应该转换为 ulong*。但是转换器需要八个字节,因此创建具有所需字节数的新数组:

byte[] value = new byte[8];
Array.Reverse(srno); // otherwise you will have a1612240fff result
Array.Copy(srno, value, 6);
ulong result = BitConverter.ToUInt64(value, 0);
Console.WriteLine("{0:x}", result); // ff0f2412160a

关于c# - 将整个 byte[] 转换为 uint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15002079/

相关文章:

.net - 使用流读取文件时写入文件?

.net - C# 确保有效的枚举值 - 面向 future 的方法

c# - 写入 Windows 事件日志时出现错误消息

c# - 在 c# 中使用 ---PUBLIC KEY--- 验证 JWT (ES256) token

c# - 如何生成一个随机字符串,并指定你想要的长度,或者更好地生成你想要的规范的唯一字符串

c# - 多个异步方法,最好使用具有不同返回类型的 WhenAll

c# - 如何使用ServiceStack实现删除服务调用

c# - 如何使用 XmlReader 读取 json

c# - WCF 中的 IMetadataExchange 问题

c# - Where 子句中的 LINQ 子查询在 LINQPad 中返回错误