【问题标题】:Conversion of int[] to byte[] with 1 int corresponding to 1 byteint[] 到 byte[] 的转换,1 个 int 对应 1 个字节
【发布时间】:2019-06-17 10:37:11
【问题描述】:

我正在使用 Stream.Write(byte[],int int) 函数写入流,但我无法转换我的 int[] to byte[] ,在我的整数数组中我有 56 个整数,它们都低于 8 位值。我想将我的 int [] byte[] 转换为我的 byte[] 也有 56 个字节。

这样

int[]= {0x0004,0x0001,0x0003,0x0003}
字节[] ={ 0x04,0x01,0x03,0x03}

提前致谢

【问题讨论】:

  • 您想将0xffff0x0100 转换成什么,因为它们的值比单个字节可以存储的大?
  • @JordiJordi 您提到的答案是“如果您想要按位复制,即从一个 int 中获取 4 个字节”。 OP 希望每个 int 获得一个字节。
  • @DavidG OP 说“所有这些都低于 8 位值”

标签: c# type-conversion int byte


【解决方案1】:

您必须从每个 int 中提取低字节:myByte = (byte)(myInt & 0xFF)

using System.Linq;
//...
int[] integers = {0x0004,0x0001,0x0003,0x0003};
byte[] bytes = integers.Select(n => (byte)(n & 0xFF)).ToArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多