我正在尝试根据uint256中的位置交换它们的位。例如,我想将位置0-4的位与位置5-9的位互换。如何才能在稳固中实现这一点?
我知道应该执行按位操作,但我不确定是哪种操作。
发布于 2018-02-14 06:27:34
您可以按如下方式实现:
function swapBits(uint256 _source) pure public returns (uint256) {
// Get first 5 bits and shift them left by 5 bits
uint16 bits1 = uint16(_source & 0x1F) << 5;
// Get second 5 bits
uint16 bits2 = uint16(_source >> 5) & 0x1F;
return _source & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC00 | bits1 | bits2;
}https://stackoverflow.com/questions/48770785
复制相似问题