我有10个字节 - 4个字节的低阶,4个字节的高阶,2个字节的最高阶 - 我需要转换为无符号长。我已经尝试了几种不同的方法,但都没有工作:如何转换10个字节为无符号长
尝试#1:
var id = BitConverter.ToUInt64(buffer, 0);
尝试#2:
var id = GetID(buffer, 0);
long GetID(byte[] buffer, int startIndex)
{
var lowOrderUnitId = BitConverter.ToUInt32(buffer, startIndex);
var highOrderUnitId = BitConverter.ToUInt32(buffer, startIndex + 4);
var highestOrderUnitId = BitConverter.ToUInt16(buffer, startIndex + 8);
return lowOrderUnitId + (highOrderUnitId * 100000000) + (highestOrderUnitId * 10000000000000000);
}
任何帮助,将不胜感激,谢谢!
你从哪里得到一个10字节长? 10个字节是80位,不适合64位长。 – 2010-05-13 23:50:40
我最后一次检查无符号长整型是64位宽。你期望得到什么?这些术语是你乘以最后一行应该是十六进制的吗? – 2010-05-13 23:51:00
不长只有8个字节? – tbischel 2010-05-13 23:53:10