前言
学习按位操作符的前提是了解变量的储存方式。
比特位:八位(比特位)组成一个字节
char(字符型):占一个字节存储空间
short(短整型):占两个字节存储空间
int(整形):占四个字节存储空间
long(长整型):占八个字节存储空间
float(浮点型):占四个字节存储空间
double(双精度浮点型):占八个字节存储空间
……
按位操作符:&(与)、^(异或)、|(非)
按位操作符的本质是通过对位操作改变数值。
一、按位操作符是什么?
定义:位操作是程序设计中对位模式按位或二进制数的一元和二元操作
运算规则:
1、&(按位与):对应位上的两个数与,只有1跟1与才是1,其他都是0。
2、^(按位异或):对应位上的两个数异或,相同为0,不同为1。
3、|(按位或):对应位上的两个数或,1和任何数或都是1。
二、如何使用
1、使用方法
与、或、异或都是双目运算符,和加减乘除这一些运算符有着相同的使用方法。
eg:
int a=12,b=10;
int c=0,d=0,e=0;
c=a&b;//按位与
d=a^b;//按位异或
e=a|b;//按位或
2.完整代码及解析
#include "stdio.h"
int main()
{
int a=3,b=5;
//a 00000000 00000000 00000000 000000011
//b 00000000 00000000 00000000 000000101
printf("%d\n",a&b);
//a&b 00000000 00000000 00000000 000000001
//按位与,1跟1与才为1
printf("%d\n",a^b);
//a&b 00000000 00000000 00000000 000000110
//按位异或,相同为0,不同为1
printf("%d\n",a|b);
//a|b 00000000 00000000 00000000 000000111
//按位或,1跟任何数或都为1
return 0;
}
输出结果: