gpt4 book ai didi

c - 优化位运算

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:21 24 4
gpt4 key购买 nike

我有一个无符号整数 N = abcd 其中 a,b,c,d 表示从 msblsb 的位。我想要得到以下数字

x1 = ab0cd
x2 = ab1cd

在 C 语言中使用按位运算最快的方法是什么?

我现在正在尝试的是如下

unsigned int blockid1 = N>>offset;
unsigned int key1 = (blockid<<(1+offset))|(((1<<offset)-1)&N);
unsigned int key2 = (key1)|(1<<offset);

这里的offset就是我要插入01的位置。

最佳答案

const unsigned int mask = (~0) << offset;  // same as -(2**offset)
unsigned int key1 = N + (N & mask);
unsigned int key2 = key1 - mask;

关于c - 优化位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455667/

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