【发布时间】:2013-09-30 21:16:27
【问题描述】:
我想计算这个:tab<<1 with tab 字节数组
我做了这几行,但似乎不起作用。我是不是做错了什么?
byte[] T = new byte[16];
for (int i = 0; i < 16; i++) T[i] = (byte)(tab[i] << 1);
【问题讨论】:
-
“但是好像不行”。什么不起作用?你期待什么,你得到什么?
-
第一行不是有效的 C# 代码。
-
你到底想在这里做什么?看起来您想将数组中的每个元素左移 1,对吗?
-
这不起作用,因为每个字节中的 MSB 被丢弃,而它必须成为下一个字节的 LSB。您可以在移位之前使用掩码保存 MSB,然后将其添加到下一个字节
-
谢谢!如果我想保存 MSB,我需要用 0xff 异或?然后如果 MSB 为 1,我是否必须将 1 添加到下一个字节?