位运算:节省内存
Char型占1B,short型占2B;
1B=8bits(位),每个位有0、1两个值;
位运算有两类:
(1)位逻辑运算符:&(位“与”)、^(位“异或”)、 |(位“或”)、 ~(位“取反”);
(2)移位运算符:<<(左移)、>>(右移)。
注意:位逻辑运算是以位(bit)为单位,普通的逻辑运算是以变量为单位;
^(位“异或”):1^1=0, 0^0=0, 1^0=1, 0^1=1;
移位例子:
#include<stdio.h>
#include<conio.h>
void main(void)
{
short czs=19889;
short ls=0,rs=0;
rs=czs>>4;
ls=czs<<4;
printf("19889左移4位结果是:%d\n",ls);
printf("19889右移4位结果是:%d\n",rs);
}
//运行结果:19889左移4位结果是:-9456
19889右移4位结果是:1243
注释:short型占据2字节,16位,则19889为:0100 1101 1011 0001;
左移4位后,为1101 1011 0001 0000; 即:-9456
右移4位后,为0000 01001101 1011; 即1243