位运算符(自我学习记录)
1.左移(<<)
数据在计算机中都是以二进制形式表示的,所以举个例子 以十进制3来说,3在计算机中显示的形式是00000011,那么左移的概念就是将二进制形式中的数据进行位移,原则是低位补0.
eg:3<<2;那么原本的3表示形式是00000011,进行左移后则变成了00001100,那么结果转换成我们所认知的十进制那就是12;
2.右移(>>)
这里要分两种情况,一种是逻辑右移,一种是算术右移
逻辑右移:不管是什么类型,空缺自动补0;
算术右移:看数是正的还是负的,下面会提到,先说个原则,正数空缺补0;负数空缺补1。
eg:3>>1;
00000011 /原3的二进制表示;
00000001(1)/位移后,将右移的1这位顶掉了相当于删除了;
所以结果3>>1结果是1;
·补充说明:为了方便记忆,对于正数来说,左移相当于乘2的n次方;而右移,相当于除了2的n次方,n代表位移数。那么为什么只对正数起作用呢?
因为复数的二进制形式是它的正数的二进制码的反码的补码表示的,
eg:4的二进制码为 00000000 00000000 00000000 00000100;
而-