gpt4 book ai didi

c - 在此代码中如何访问各个位?

转载 作者:行者123 更新时间:2023-11-30 16:37:13 26 4
gpt4 key购买 nike

所以我看到这段代码打印出了任何数字的各个位。我不明白为什么访问各个位而不是整个数字本身

#include <stdio.h>
int main()
{
int x=10, b;
for(b=0; x!=0; x>>=1) {
printf("%d:%d\n", b, (x&1));
b++;
}
}

输出:

0:0 1:1 2:0 3:1 

请帮我理解这段代码。

最佳答案

在您的代码中,您正在以二进制形式打印 X 变量的值。为此,您的代码使用逻辑运算作为 AND 运算符和右移。

在循环条件中,将 X 变量向右移动一位。

 for b = 0 you get x = 1010  
for b = 1 you get x = 101
for b = 2 you get x = 10
for b = 3 you get x = 1

然后,在打印中显示循环迭代器 (b) 和 X 变量 AND 1。

AND 运算符获取以下值:

0 AND 0 = 0   
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

就您而言,您有:

1010 AND (000)1 = 0  
101 AND (00)1 = 1
10 AND (0)1 = 0
1 AND 1 = 1

关于c - 在此代码中如何访问各个位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48057735/

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