我总是使用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;。
我不知道那些字节移位操作符实际上是做什么的,这就是为什么我根本无法解决这个问题:(有人可以帮助我吗?
答案 0 :(得分:-1)
错误说,不要将<<
用于char
。
尝试以下代码:
blocks(i >> 2) = blocks(i >> 2) Or Ascw(input(i)) << ((i Mod 4) * 8)