题目:学习使用按位与 &

程序分析:0&0=0;0&1=0;1&0=0;1&1=1。

实例

#include <stdio.h>

int main() {
    int a, b;
    a = 077; // 八进制表示的数,相当于十进制的 63
    b = a & 3; // 63 & 3 = 3
    printf("a & b(decimal) 为 %d\n", b);
    b &= 7; // 3 & 7 = 3
    printf("a & b(decimal) 为 %d\n", b);
    return 0;
}

以上实例输出结果为:

a & b(decimal) 为 3
a & b(decimal) 为 3

在该程序中,使用按位与 & 运算符对变量 ab 进行位运算。

首先,将变量 a 赋值为 077,它是一个八进制数,相当于十进制数的 63。然后,使用 a & 3 对变量 a 和 3 进行按位与运算,结果赋值给变量 b。因为 3 的二进制表示是 011,而 63 的二进制表示是 111111,所以按位与运算后的结果是 000011,即十进制的 3。

接着,使用 b &= 7 对变量 b 和 7 进行按位与运算,并将结果赋值给变量 b。因为 7 的二进制表示是 111,而 3 的二进制表示是 011,所以按位与运算后的结果仍然是 000011,即十进制的 3。

最后,使用 printf 函数分别输出变量 b 的值,结果都是 3。

通过该例子,我们可以了解按位与 & 运算符的基本用法,它可以将两个操作数的对应位进行按位与运算,只有当两个位都是 1 时,结果位才是 1,否则为 0。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题