专门做毕业设计的网站,如何让订阅号菜单做微网站,湖北网站建设营销qq,大理州住房和城乡建设局网站C语言 基础开发----目录 一、位运算符----简介
位运算符 就是按二进制位进行运算。
C语言中位运算符主要包括六种#xff0c;具体如下#xff1a; 与()#xff0c;或(|)#xff0c;非(~)#xff0c;异或(^)#xff0c;左移()和右移()
位运算符含…C语言 基础开发----目录 一、位运算符----简介
位运算符 就是按二进制位进行运算。
C语言中位运算符主要包括六种具体如下 与()或(|)非(~)异或(^)左移()和右移()
位运算符含义说明按位与有0为0双1为1 111100010000只有两者对应位都为1结果对应位才为 1否则为 0I按位或有1为1双0为0 1I111I010I110I00只要两者对应位有一个为1则结果对应位就为 1否则为 0~按位取反1变00变1 ~10 ~01如果该位为 1则结果对应位为 0如果该位为 0 则结果对应位为 1^按位异或不同为1相同为0 1^10, 1^01, 0^11, 0^00 只有两者对应位不一样则结果对应位才为 1 否则为 0左移左移n位就是乘以2的n次方所有位依次向左移动高位丢弃低位补0右移右移n位就是除以2的n次方无符号数据所有位依次向右移动高位补0低位丢弃有符号数据所有位依次向右移动符号位不变低位丢弃
二、位运算符----详细说明
1. 位与运算()有0为0双1为1
只有两者对应位都为1结果对应位才为 1否则为 0。
变量十六进制数值二进制数a0x030000 0011b0x0A0000 1010ab0x020000 0010
举例说明
#include stdio.hint main(int argc, char *argv[])
{unsigned char a0x03,b0x0A;printf(a0x%X\n,a);printf(b0x%X\n,b);printf(ab0x%X\n,ab);return 0;
}运行结果如下 2. 位或运算(|)有1为1双0为0
只要两者对应位有一个为1则结果对应位就为 1否则为 0。
变量十六进制数值二进制数a0x030000 0011b0x0A0000 1010aIb0x0B0000 1011
举例说明
#include stdio.hint main(int argc, char *argv[])
{unsigned char a0x03,b0x0A;printf(a0x%X\n,a);printf(b0x%X\n,b);printf(a|b0x%X\n,a|b);return 0;
}运行结果如下 3. 位取反运算(~)1变00变1
如果该位为 1则结果对应位为 0。 如果该位为 0 则结果对应位为 1。
变量十六进制数值二进制数a0x030000 0011~a0xFC1111 1100
举例说明
#include stdio.hint main(int argc, char *argv[])
{unsigned char a0x03,b~a;printf(a0x%X\n,a);printf(b0x%X\n,b);return 0;
}运行结果如下 4. 位异或运算(^)不同为1相同为0
只有两者对应位不一样则结果对应位才为 1 否则为 0。
变量十六进制数值二进制数a0x030000 0011b0x0A0000 1010a^b0x090000 1001
举例说明
#include stdio.hint main(int argc, char *argv[])
{unsigned char a0x03,b0x0A;printf(a0x%X\n,a);printf(b0x%X\n,b);printf(a^b0x%X\n,a^b);return 0;
}运行结果如下 5. 左移运算()
所有位依次向左移动高位丢弃低位补0。
变量十六进制数值二进制数a0x030000 0011a20x0C0000 1100
举例说明
#include stdio.hint main(int argc, char *argv[])
{unsigned char a0x03;printf(a0x%X\n,a);printf(a20x%X\n,a2);return 0;
}运行结果如下 6. 右移运算()
无符号数据所有位依次向右移动高位补0低位丢弃。
变量十六进制数值二进制数a0x0831000 0011a10x410100 0001
举例说明
#include stdio.hint main(int argc, char *argv[])
{unsigned char a0x83;printf(a0x%X\n,a);printf(a10x%X\n,a1);return 0;
}运行结果如下 有符号数据所有位依次向右移动符号位不变低位丢弃。
变量十六进制数值二进制数a0x0831000 0011a10xC11100 0001
举例说明
#include stdio.hint main(int argc, char *argv[])
{char a0x83;printf(a0x%X\n,(unsigned char)a);printf(a10x%X\n,(unsigned char)(a1));return 0;
}运行结果如下