左移动操作符
int a1 = 12<<1;//24
int a2 = -12<<2;//-48
int a3 = 128<<2;//512
int a4 = 129<<2;//516
舍弃二进制数开头一位.在二进制数尾部增加一位0.
a*2^b<===a<<b
数字a左移b位结果为 a*2的b次方
一 12的二进制形式
1 >12
0000 0000 0000 1100
0000 0000 0001 1000
----------------------等价于10进制24
二
-12的二进制
1>12二进制
0000 0000 0000 1100
2>取反
1111 1111 1111 0011
3>加1
1111 1111 1111 0100
3>左移动两位
1111 1111 1101 0000
4>
变为十进制的形式
4.1>-1
1111 1111 1100 1111
4.2 >取反
0000 0000 0011 0000
48
由于是负数故为-48
--------------------------
三
int a3 = 128<<2;
1>128二进制
0000 0000 1000 0000
2>左移动两位 在尾部补两位0
0000 0000 0000 0000
十进制数为512
四 int a4 = 129<<2;//516
0000 0000 1000 0001
129的十进制
左移两位
0000 0010 0000 0100
十进制为516
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。