#define _CRT_SECURE_NO_WARNINGS 1#includestdio.h//移位操作符对二进制数进行移位// 左移操作符// 右移操作符//注移位操作符的操作数只能是整数。//// 左移位操作符移位规则左边抛弃、右边补0//int main()//{// int a 6;// int b (a 1);// int b (a 2);//移动两位为24相当于乘二在乘二的效果// //移动的是二进制位存储在内存的补码// printf(b %d\n, b);//输出为12在移位数字不大时有二倍效果// printf(a %d\n, a);//输出为6结果还是不会改变// return 0;//}// 右移位操作符移位规则⾸先右移运算分两种//1.逻辑右移左边⽤0填充右边丢弃//2.算术右移左边⽤原该值的符号位填充右边丢弃//这两种方式在运行的时候是根据不同的编译器采用的方法不一样大部分编译器采用的是算术右移int main(){int a -10;int b (a 1);//int b (a 2);//移动的是二进制位存储在内存的补码printf(b %d\n, b);//输出为-5在移位数字不大时有二倍效果printf(a %d\n, a);//输出为-10结果还是不会改变return 0;}//注意对于移位运算符不要移动负数位这个是标准未定义的。且不要移动超过该数字补码的位数1位符号 31位数值