gpt4 book ai didi

c# - MSIL有ROL和ROR指令吗?

转载 作者:太空狗 更新时间:2023-10-29 22:55:40 26 4
gpt4 key购买 nike

我写了一个 Int128 类型,效果很好。我想我可以通过一个简单的想法来改进它的性能:改进有点笨拙的移位操作。

因为它们在乘法和除法中大量使用,所以改进会产生链式 react 。所以我开始创建一个动态方法(低位旋转高位),结果发现没有 OpCodes.Rol 或 OpCodes.Ror 指令。

这在 IL 中可能吗?

最佳答案

没有。

你需要用移位来实现它

UInt64 highBits = 0;
UInt64 lowBits = 1;
Int32 n = 63;
var altShift = (n - 63);

var lowShiftedOff = (n - 63) > 0 ? 0 : (lowBits << n);
var highShiftedOff = (n - 63) > 0 ? 0 : (highBits << n);

var highResult = (UInt64)(highShiftedOff | (altShift > 0 ? (lowBits << altShift - 1) : 0));
var lowResult= (UInt64)(lowShiftedOff | (altShift > 0 ? (highBits << altShift - 1) : 0));

关于c# - MSIL有ROL和ROR指令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3220579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com