1 #include <stdio.h>
2
3 int main()
4 {
5 /* 位运算 */
6 unsigned char a = 0xb3,b,c;
7 b = a<<4;
8 c = a>>4;
9 c = c | b;
10 printf("%d\n",c);
11
12 return 0;
13 }
运算过程:
因为 a 是char型存储(即计算机给char型数据分配一个字节,也就是8个二进制位),
所以 0xb3 的二进制位是 1011 0011(为方便数位数,把10110011间隔开),
执行第7行,根据左移运算规则,【高位舍去,低位补零】,
得 b=0011 0000,
执行第8行,根据右移运算规则,【两种情况:(1)对无符号数,高位补零,低位舍去(2)对有符号数,点击此链接的【右移运算符部分】】
得 c = 0000 1011,
再执行第9行 c = c | b [注意:这里的“|”是或运算符,不是字母“l