大多数开发过程中基本都是面向业务开发,因此很少去思考及探索最优解,本篇也仅仅是记录一些自己不太熟悉的点。 在翻看Android源码是会遇到很多位移元算,比如MeasureSpec 位移运算:
“<<”运算: a<<b,表示a转为二进制后左移b位(在后面添加 b个0)。例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<<2 =110010000 =400,通常会被拿来进行表示乘2的操作,即a<<b的值实际就是a乘以b的b次方,例如1<<16 -1,可以用来表示65535。
“>>”运算:
和<<相似,a>>b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整),即a/4 = a>>2