二进制基础知识

C的|、||、&、&&、异或、~、!运算符

   (1)按位与运算符(&)

0 & 0 = 0, 0 & 1 = 0, 1 & 0 = 0, 1 & 1 = 1

  (2)按位或运算符(|)

   0 | 0 = 0, 0 | 1 = 1, 1 | 0 = 1, 1 | 1 = 1

   (3)按位异或运算符(^)

0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0

(4)按位取反运算符(~)

	#define _CRT_SECURE_NO_WARNINGS 1
	#include<iostream>
	using namespace std;
	int main() {
		int a = 43,b = 21; //a = 1101 0101
		int i = 5;
		if ((1 << (i - 1)) & a)  
			printf("yes");
		printf("%d\n", a | (1 << (i - 1)));
		printf("%d\n", a & (a - 1)); // 去掉最后一个1
		printf("%d\n", a & (~(1 << 1))); // 第i个位置变
		//判断a的第i个位置是否为1 (1<<(i-1))&a
		//将a的第i个位置变成1  a|(1<<(i-1))
		//将a的最后一个1改为0 这里用的是补码的知识  a&(a-1)
		//将a的第i位变成0 a&(~(1<< i))
		printf("%d", (1<<1) & ~(1 << 1));//他是一元运算符,用于求整数的二进制反码,即分别将操作数各二进制位上的1变为0,0变为1。
		return 0;
	}

猜你喜欢

转载自blog.csdn.net/zhi6fui/article/details/128514403