gpt4 book ai didi

检查数字中的偶数或奇数 `1` 位

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

我想检查 number 是否将所有偶数位或奇数位都设置为 1,并且只有它们。例如:

编号42是正确的,因为在二进制代码中 101010它所有且只有偶数位设置为 1 .编号 21也是正确的,10101 .

编号69例如。 1000101不正确,因为只有三个奇数位设置为 1 .

我尝试对 ^, &, >>, << 使用不同的操作我仍然不知道如何使用这些运算符来做到这一点。是的,我需要在 C 中使用逻辑运算符来执行此操作.

最佳答案

这些数字具有 (x ^ (x >> 1)) + 1 是 2 的幂。y 是 2 的幂,如果 y & (y - 1) == 0

所以一个测试可以是 ((x ^ (x >> 1)) + 1) & (x ^ (x >> 1)) == 0 这适用于任何数字大小。

关于检查数字中的偶数或奇数 `1` 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876067/

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