我有array^ byteArray
,我需要提取Little Endian序列中的字节以生成未签名的short和int。我已经尝试了以下所有我能想到的组合,所以我都在寻求帮助。在C++中将无符号字符(字节)数组转换为无符号短符号
int x = UInt32(byteArray[i]) + (UInt32)(0x00ff) * UInt32(byteArray[i + 1]);
int x = UInt32(byteArray[i]) + UInt32(0x00ff) * UInt32(byteArray[i + 1]);
int x = byteArray[i] + 0x00ff * byteArray[i + 1];
的问题是至少显著字节(在I + 1)我知道它是为0x50,但是所生成的短/ INT报告低位字节为0x0B中。较高的字节不受影响。
我想这是一个符号错误,但我似乎无法修复它。
在MSDN帮助页面上,我发现指示数组01-02-03-04的ToInt16示例产生ToInt16(arr,1)== 0x20。除非我错过了什么。感谢您提供的快速专业知识。 – John
糟糕,对吧。我的错。搞大脑,关闭MS-calc。 – John