1.符号~为按位求反,优先级为1
例:~0101->1010
2.符号<<为左移,高位移出,低位补0,优先级为2
例:0011<<1->0110
3.符号>>为右移,低位移出,高位补符号位,优先级为2
例:0101>>2->0001
4.符号&为按位与,优先级为3
例:0111&1100->0100
5.符号^为按位异或,相同为0,不同为1,优先级为4
例:0111^1100->1011
6.符合|为按位或,优先级为5
例:0111|1100->1111
7.运算优先级
(1)正负号>逻辑非>按位取反
(2)乘除>加减>按位左右移
(3)大小比较运算>相等比较运算
(4)按位与>按位异或>按位或
(5)逻辑与>逻辑或
(6)赋值操作
注:浮点数不能做位运算
8.char是字符型,本质是整型数,一个字节的整型,将char型赋给整型,打印出来对应字符的ASCII码值
#include <stdio.h>
int main(){
char c='A';
short a=c;
int b=c;
printf("c=%c\n",c); //A
printf("c=%d\n",c); //65
printf("a=%d\n",a); //65
printf("b=%d\n",b); //65
c=0x40; //十六进制
printf("c=%x\n",c); //40 %x表示输出类型为十六进制
printf("c=%d\n",c); //64
c=c<<1;
printf("c=%d\n",c); //-128
return 0;
}