-1

私はこれを計算したい:tab<<1タブのバイト配列

これらの数行を実行しますが、機能しないようです。私は何か間違ったことをしているのですか?

byte[] T = new byte[16];


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

1 に答える 1

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;
}
于 2013-10-01T09:31:24.887 に答える