位操作符的内容有些难度,并且也不常用。
从这几天的文章阅读量可以看出来,阅读的人比较少。
但学习这事,从来都是一件艰苦的事情,从来不轻松。
也许难懂,多看几遍就懂了。来吧,和我一起看这些比较难的内容
复习下,位操作符为什么快?
因为它在最基本的层次上,即按内存中表示数值的位来操作数值。
这句话不懂?没关系,我也不懂。
这是我第三、四次读这句话。
我相信,当我读到100遍,200遍的时候,我一定就懂了。
我们继续,迎难而上。。。
按位与(AND),它由一个和号字符(&)表示。
书上第41页写的,有此难,我直白的说一下,
它用来比较,在它左右的二个十进制数的二进制格式的每一位。
例,25 & 3,这就是对25和3这二个十进制数,执行按位与操作了。
先不说结果,先来讲下过程,是怎么比较的呢?
它是把十进制数,转成二进制后才比较的。
那么,25转成二进制是多少?
25/2,余1,未整除,1
12/2,余0,整除,0
6/2,余0,整除,0
3/2,余1,未整除,1
1/2,余0.5,未整除,1
25转成二进制是11001
同理,3转成二进制是,11
那么按位与(&)比较的定义和规则是什么呢?
从本质上讲,&操作是将二个数值的每一位对齐,然后两两成对比较。
规则,只有二个数值的对应位都是1时,返回1;任何一位是0,结果都是0 。
按这个规则来比较:
11001
00011
------
00001
从左向右比较,只有最右边的上下两位都是1,返回1
最后的结果,1
这就是按位与(AND),用&符号表示。
我会了,你呢?