C#移位一个byte数组

时间:2013-09-30 21:16:27

标签: c# byte shift

我想计算一下:tab<<1使用tab一个byte

数组

我做了这几行,但似乎它不起作用。我做错了什么?

byte[] T = new byte[16];


for (int i = 0; i < 16; i++) T[i] = (byte)(tab[i] << 1);

1 个答案:

答案 0 :(得分:0)

如果你想延续每个字节的MSB,你可以这样做:

var t = new byte[16];

byte carry = 0x0;
for (var i = 15; i >=0 ; i--)
{
    var newcarry = (byte) (t[i] & 0x80);
    t[i] = (byte) (t[i] << 1 + carry);
    carry = newcarry;
}