【问题标题】:Convert integer to byte array将整数转换为字节数组
【发布时间】:2015-02-05 18:45:30
【问题描述】:

我很难尝试执行从整数到字节数组的简单转换。

我觉得这一定很简单,甚至是微不足道的,但无法得到它(所以如果有人知道这个操作的正确“名称”,请告诉我)。另外,我找不到更好的问题标题,但我觉得它有点含糊(请随意编辑)。

我想要什么:

byte[] result = MagicConverter.Convert(336);
// now result should be {0, 0, 1, 80}

转换336的结果应该是1, 80,因为这是以256为底的分解,即1*256 + 80 = 336。

我的代码库包含许多用于执行类似任务的移位内容,但我认为我还不太了解这种移位内容。

【问题讨论】:

  • 1*256+80 = 336,不是 366
  • 附注,如果您打算使用它与其他应用程序通信字节数组,您可能需要研究Endianness。不同的平台将以不同的顺序存储整数的字节,并且该顺序在互操作时很重要。
  • @Matt 你是对的,这是一个错字!
  • @DanBryant 你是对的!很可能我的设备使用 BigEndian,因为我需要根据接受的答案颠倒顺序。

标签: c# numbers base


【解决方案1】:
BitConverter.GetBytes(366); 

应该做的伎俩。

【讨论】:

  • 不错!我觉得它应该是“显而易见的”:) 不过需要注意的是:为了获得我需要的订单,我必须这样做:bytes = BitConverter.GetBytes(366); var reversed = bytes.Reverse().ToArray(); return reversed;
【解决方案2】:

你要找的是BitConverter.GetBytes():

byte[] result = BitConverter.GetBytes(366);

【讨论】:

    【解决方案3】:

    您可以使用BitConverter.GetBytes() 函数来执行此操作。

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 2014-10-17
      相关资源
      最近更新 更多