我尝试将数组从byte[]
to sbyte[]
.
这是我的示例数组:
byte[] unsigned = { 0x00, 0xFF, 0x1F, 0x8F, 0x80 };
我已经尝试过这个:
sbyte[] signed = (sbyte[])((Array)unsigned);
但这不起作用。此操作后数组中没有值。
有人有更好的主意吗?
sbyte[] signed = (sbyte[]) (Array) unsigned;
这是可行的,因为 byte 和 sbyte 在内存中具有相同的长度,并且可以在不需要改变内存表示的情况下进行转换。
然而,这种方法可能会导致调试器出现一些奇怪的错误。如果你的字节数组不是很大,你可以使用Array.ConvertAll
反而。
sbyte[] signed = Array.ConvertAll(unsigned, b => unchecked((sbyte)b));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)