如何从左到右而不是从右到左扫描整数(二进制)?我知道我可以从左边开始尝试每一位,然后记录最左边的位,但是有更快的方法吗?是否有一个内置函数可以立即找到整数中最左边的活动位(即 1)?
我知道从右到左,我可以做类似的事情
int myInt = 1234;
for(int i = 0; i < 32; i++) {
int curr_bit = myInt & (1 << i);
// do something with curr_bit
}
但是,我想从最左边的可用位开始,我想要它的数字“x”,以便1 << x
指向那个确切的数字(作为旁注,我正在尝试实现重复平方,我需要这个在我的代码)。
任何帮助将不胜感激!