首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在solidity中从uint256交换指定位置的位

如何在solidity中从uint256交换指定位置的位
EN

Stack Overflow用户
提问于 2018-02-13 23:59:30
回答 1查看 178关注 0票数 1

我正在尝试根据uint256中的位置交换它们的位。例如,我想将位置0-4的位与位置5-9的位互换。如何才能在稳固中实现这一点?

我知道应该执行按位操作,但我不确定是哪种操作。

EN

回答 1

Stack Overflow用户

发布于 2018-02-14 06:27:34

您可以按如下方式实现:

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48770785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档