#include <stdio.h> int main(void) { //定义一个无符号字符型变量,此变量只能用来存储无符号数 unsigned char result; int a,b,c,d; a = 2; b = 4; c = 6; d = 8; //对变量进行“按位与”操作 result = a & c; printf("result = %d\n",result ); //2 //对变量进行“按位或”操作 result = b | d; printf("result = %d\n",result ); //12 //对变量进行“按位异或”操作 result = a ^ d; printf("result = %d\n",result ); //10 //对变量进行“取反”操作 result = ~a; printf("result = %d\n",result ); //253 } /** 按位与(&)运算符:参加运算的两个运算符,如果都为1,则该位为1,否则为0 按位或(|)运算符:两个相应位中只要有一个为1,则该位的结果为1. 按位异或(^)运算符:参加运算的两个相应位,同号则结果为0(假),异号则结果为1(真) 取反(~)运算符:他是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变为1,1变为0。 注意点: --位运算符是对二进制按位进行运算,将十进制数转换为二进制然后按照进行上面的规则进行相关的操作。 --位运算符中除了取反运算符外,其他的均为二目运算符,既要求两侧各有一个变量 --位运算符是对字节或字节中的位进行测试、置位或者移位处理,这里字节或者字是针对c标准的char和int数据类型而言,因此,位操作不能用于float、double、long double、void及其他复杂类型 */
原文:https://www.cnblogs.com/starshine-zhp/p/12381367.html