在c++中移位二进制数

1wnzp6jl  于 2022-12-20  发布在  其他
关注(0)|答案(2)|浏览(168)

例如我想做的:我有1,它是00000001在二进制。当我像1〈〈3我会采取8,它是00001000。所以,我需要我采取00001111后1〈〈3。我希望你能理解,如果有什么错误添加不清楚请询问它。我想做短这一部分:
第一个月

5vf7fwbs

5vf7fwbs1#

据我所知,你想

std::uint32_t my_shift(std::uint32_t n, std::uint32_t lshift)
{
    return (n << lshift) | ((1 << lshift) - 1);
//      original shifted | 0b0001111 (lshift 1)
}
ltskdhd1

ltskdhd12#

您可以直接迭代hr:

for(int hr=1; h>0; h--, hr=2*hr+1)

相关问题