很多人觉得位移这东西很复杂,二进制一堆0、1看不懂。。。
其实很简单。。。
位移理解可能简单一些:其实位移就是数据转换成二进制的左右移动;右移左补0,左移右补0,后面多出来的部分去掉。
用乘除法去理解位移也可以:
左位移:相当于乘
左移1位相当于乘2,左移2位相当于乘4,左移3位相当于乘8,左移4位相当于乘16...类推
右位移:相当于除
右移1位相当于除2,右移2位相当于除4,右移3位相当于除8,右移4位相当于除16...类推
下面用一个我曾回帖用过的例子帮助理解
把89右位移一位:
string flag = Convert.ToString(89, 2); //这是把你的89转为2进制数。。
//flag结果:1011001
//你要右位移,左边补个0,后面多出来一位去掉
int j = Convert.ToInt32("0101100", 2); //再把2进制转化了10进制数。。
//结果:44
//位移就是这么简单