目录
题目
问题分析
按位与操作符(&)
按位或操作符(|)
按位异或操作符(^)
按位取反操作符(~)
代码及运行结果
题目
学习使用按位与& ,按位或 |,按位异或 ^和按位取反~
问题分析
按位与操作符(&)
对两个二进制数的对应位进行与操作。如果两个位置上的位都是1,则结果为1,否则为0。
0 & 0 = 0;
0 & 1 = 0;
1 & 0 = 0;
1 & 1 = 1
有0则0,同1则1
例如:给定两个二进制数1010和1100,进行按位与操作:
1010 & 1100 ------- 1000
按位或操作符(|)
对两个二进制数的对应位进行或操作。如果两个位置上的位中至少有一个为1,则结果为1,否则为0。
0 | 0 = 0;
0 | 1 = 1;
1 | 0 = 1;
1 | 1 = 1
有1则1,同0则0
例如:给定两个二进制数1010和1100,进行按位或操作:
1010 | 1100 ------- 1110
按位异或操作符(^)
对两个二进制数的对应位进行异或操作。如果两个位置上的位不同,则结果为1,否则为0。
0 ^ 0 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;
1 ^ 1 = 0
相同则0,不同则1
例如:给定两个二进制数1010和1100,进行按位异或操作:
1010 ^ 1100 ------- 0110
按位取反操作符(~)
将一个二进制数的每个位取反,即将所有的1变为0,将所有的0变为1。
~0 = 1;
~1 = 0
例如:给定一个二进制数1010,进行按位取反操作:
~ 1010 ------- 0101
代码及运行结果
//按位与&
//0 & 0 = 0; 0 & 1 = 0; 1 & 0 = 0; 1 & 1 = 1
#include "stdio.h"
main()
{
int a, b;
a = 077; // 1110111
b = a & 3; // 0000011
printf("\40: The a & b(decimal) is %d \n", b);//decimal--十进制
b &= 7; // 0000111
printf("\40: The a & b(decimal) is %d \n", b);
}
//按位或 | 。
//0 | 0 = 0; 0 | 1 = 1; 1 | 0 = 1; 1 | 1 = 1
#include "stdio.h"
main()
{
int a, b;
a = 077;
b = a | 3;
printf("\40: The a & b(decimal) is %d \n", b);
b |= 7;
printf("\40: The a & b(decimal) is %d \n", b);
}
//按位异或 ^ 。
//0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0
#include "stdio.h"
main()
{
int a, b;
a = 077;
b = a ^ 3;
printf("\40: The a & b(decimal) is %d \n", b);
b ^= 7;
printf("\40: The a & b(decimal) is %d \n", b);
}
文章来源:https://www.toymoban.com/news/detail-705407.html
//按位取反~。
//~0 = 1; ~1 = 0;
#include "stdio.h"
main()
{
int a, b;
a = 234;
b = ~a;
printf("\40: The a's 1 complement(decimal) is %d \n", b);
a = ~a;
printf("\40: The a's 1 complement(hexidecimal) is %x \n", a);
}
文章来源地址https://www.toymoban.com/news/detail-705407.html
到了这里,关于C语言经典100例题(51-54)--学习使用按位与& ,按位或 |,按位异或 ^和按位取反~的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!