gpt4 book ai didi

c++ - 用掩码交错位

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:31 25 4
gpt4 key购买 nike

输入:

arbitrary bitset, e.g. bit positions 012345
arbitrary bit mask, e.g. (x=1) xx0x0x

输出:

xx0x1x2345

也就是我想让bitset的第一个bit放在mask的第一个0中。同样,第二位放在掩码的第二个 0 中。

例子:

mask = 1001001
bits = 1101
result = 1111011

我知道这可以通过循环来完成,但我想主要使用位操作来完成。我知道您可以仅使用掩码和位运算符执行任意位排列。我愿意花大量时间设置置换掩码,因为输入掩码将被多次使用。

编辑:我看过 http://graphics.stanford.edu/~seander/bithacks.html 的算法和 http://www.hackersdelight.org/HDcode.htm ,但还没有找到确切的方法。

最佳答案

我认为 012345 旨在成为 BITSET,他使用 0..5 来表示 0 和 1 的混合。

但是,这似乎不是按位运算。我会坚持一个循环..

关于c++ - 用掩码交错位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1315200/

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