我正在通过将一些C++函数移植到.NET的BigInteger来独立研究位移位。我注意到,当我移动BigInteger时,空白处被1填充了。compactBitsRepresentation = (uint)(int)(num << 16);10000010will be shifted 16
11111111100000100000000000000000 wa
我相信以前有人问过这个问题,但我需要在长度可变的字节数组上实现一个移位运算符。我环顾了一下,但我还没有找到任何标准的方法。我想出了一个有效的实现,但我不确定它的效率如何。有没有人知道移动数组的标准方法,或者至少对如何提高我的实现的性能有什么建议;
char* baLeftShift(const char* array, size_t size, signed int displacement