gpt4 book ai didi

c - 按位运算的输出说明

转载 作者:行者123 更新时间:2023-11-30 21:11:44 24 4
gpt4 key购买 nike

void main() 
{
int x=7;
printf("%d",x&(x-1));
int y=6;
printf("%d",y&(y-1));
printf("%d",y>>2);


}

当我输入奇数时,我得到输出 n-1,其中 n 是奇数,但是当我输入 y= 偶数时,我得到输出 0。我无法理解这一点,请帮忙。

我的第二个问题是,当我打印 y>>2 即 6>>2 时,我得到输出 1。请也解释一下。我知道这些是按位运算,但我的概念不清楚。谢谢

最佳答案

让我们分解每一行:

x&(x-1) => 0x111 & 0x110 => 0x110 => 6

...和:

y&(y-1)) => ox110 & 0x101 => 0x100 => 4

...最后:

y>>2 => 0x110 >> 2 => 0x001 => 1

备注:回顾一下您对 bitwise operations 的了解可能是个好主意。 .

关于c - 按位运算的输出说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193258/

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