将一行C#翻译成VB.net

时间:2014-03-13 16:06:42

标签: c# vb.net

我总是使用C#到VB.NET转换器,它完美无缺。 但是现在我遇到了一个问题:

private static int[] ChunkInput(string input)
        {
            var numberOfBlocks = ((input.Length + 8) >> 6) + 1;
            var blocks = new int[numberOfBlocks * 16];
            for (var i = 0; i < input.Length; i++)
            {
                blocks[i >> 2] |= input[i] << ((i % 4) * 8);
            }
            blocks[input.Length >> 2] |= 0x80 << ((input.Length % 4) * 8);
            blocks[numberOfBlocks * 16 - 2] = input.Length * 8;
            return blocks;
        }

我的转换器正确地翻译了所有内容,直到一条小线:

blocks[i >> 2] |= input[i] << ((i % 4) * 8);
-> was made to :
blocks(i >> 2) = blocks(i >> 2) Or input(i) << ((i Mod 4) * 8)`

失败消息是: &lt;&lt; -Operator未定义类型&#34; char&#34;和&#34;整数&#34;。

我不知道那些字节移位操作符实际上是做什么的,这就是为什么我根本无法解决这个问题:(有人可以帮助我吗?

1 个答案:

答案 0 :(得分:-1)

错误说,不要将<<用于char

尝试以下代码:
blocks(i >> 2) = blocks(i >> 2) Or Ascw(input(i)) << ((i Mod 4) * 8)