【问题标题】:c# Pad at the leading octetsc# 在前导八位字节处填充
【发布时间】:2011-08-01 07:23:54
【问题描述】:

我有 3 个字节长的指数。现在我需要它是 4 个字节。我找到了可以填充前导八位字节的地方..但我不知道这样做..那么有人可以帮我吗?

示例输入:我现在拥有的指数是 65537,int 字节,然后是 01 00 01。

【问题讨论】:

  • 此处将不胜感激示例输入和输出

标签: c# padding


【解决方案1】:

假设你只想用零填充它,创建一个新的四字节数组并将现有的复制到其中:

byte[] newArray = new byte[4];
// Copy bytes 0, 1, 2 of oldArray into 1, 2, 3 of newArray.
Array.Copy(oldArray, 0, newArray, 1, 3);

(您也可以通过三个分配手动执行此操作;对于这种情况,这可能更简单,但不能很好地(就代码而言)扩展到更大的大小。)

如果您发现需要在末尾而不是开头填充,请将“1”更改为“0”...或者在这种情况下使用Array.Resize

【讨论】:

    【解决方案2】:

    完全确定意思,但听起来你只是想要:

    byte[] first = /* 3 bytes */
    byte[] second = new byte[4];
    // since 3 bytes, we'll do this manually; note second[0] is 0 already
    second[1] = first[0];
    second[2] = first[1];
    second[3] = first[2];
    

    当然,如果您实际处理的是int,它已经在左侧填充了 0 到 4 个字节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多