gpt4 book ai didi

c - 此代码如何为任何给定数字找到 2 的下一个最高幂

转载 作者:太空狗 更新时间:2023-10-29 15:22:29 26 4
gpt4 key购买 nike

此代码如何为 32 位整数的任何给定数字 [>1] 找到 2 的下一个最高幂?

n--;
n = n | n>>1;
n = n | n>>2;
n = n | n>>4;
n = n | n>>8;
n = n | n>>16;
n++;

最佳答案

移位和按位或的序列保证了一个由所有 1 组成的数字,它比 2 的幂小一。加 1 得到 2 的幂。

初始减 1 是为了使其适用于已经是 2 的幂的 n 值。

(显然,如果 n 最初是 0,则此代码不起作用。)

关于c - 此代码如何为任何给定数字找到 2 的下一个最高幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084367/

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