【发布时间】:2011-08-01 07:23:54
【问题描述】:
我有 3 个字节长的指数。现在我需要它是 4 个字节。我找到了可以填充前导八位字节的地方..但我不知道这样做..那么有人可以帮我吗?
示例输入:我现在拥有的指数是 65537,int 字节,然后是 01 00 01。
【问题讨论】:
-
此处将不胜感激示例输入和输出
我有 3 个字节长的指数。现在我需要它是 4 个字节。我找到了可以填充前导八位字节的地方..但我不知道这样做..那么有人可以帮我吗?
示例输入:我现在拥有的指数是 65537,int 字节,然后是 01 00 01。
【问题讨论】:
假设你只想用零填充它,创建一个新的四字节数组并将现有的复制到其中:
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。
【讨论】:
不完全确定意思,但听起来你只是想要:
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 个字节。
【讨论】: