gpt4 book ai didi

c# - 在 C# .Net Microframework 中将字节数组转换为 ushort 数组

转载 作者:太空狗 更新时间:2023-10-29 23:15:14 25 4
gpt4 key购买 nike

我需要将字节数组转换为 UInt16 (ushort) 数组。我能够将字节数组转换为 UInt32 数组。

我已经看过 this SO question .但是我不能使用 BitConverter 或引用问题中给出的解决方案。

我也提到了这些问题: THISTHIS .

这是我到目前为止尝试过的。

for (uint objIndex = 0; objIndex < data.Length; ++objIndex)
{
data[objIndex] = (Convert.ToUInt16(byteArray[objIndex * sizeof(UInt16) + 0].ToString()) << 8)
+ byteArray[objIndex * sizeof(UInt16) + 1];
// Error - Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists.

data[objIndex] = ((ushort)(byteArray[objIndex * sizeof(UInt16) + 0]) << 8)
+ byteArray[objIndex + 1];
// Error - Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists.
}

请让我知道这里缺少什么。

编辑:在将每个数字转换为 ushort 后,我​​能够修复它,如下所示。

for (ushort objIndex = 0; objIndex < data.Length; ++objIndex)
{
ushort length = sizeof(UInt16);
data[objIndex] = (ushort)( (ushort)(byteArray[objIndex * length] << (ushort)8) +
byteArray[objIndex + 1] );
}

最佳答案

查看 Buffer.BlockCopy() .您可以将内容 (byte[]) 转储为不同的格式 (UInt16[])。

例子:

var input = byte[1024];
var output = ushort[1024 / 2]; // every ushort is 2 bytes

Buffer.BlockCopy(input, 0, output, 0, 1024);

关于c# - 在 C# .Net Microframework 中将字节数组转换为 ushort 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20788061/

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