正如你所知的那样,电脑的资料都是以二进制存储的,当然我们编程语言中的变量也都是用二进制存储,在Cocoa和iOS编程中大量使用了位运算。通常我们接触的有这几个: <<(左移),>>(右移),&(与),|(或), ^(异或),~(非)。通过这些符号,我们可以对变量进行位元运算。<<和>>左移和右移的功能是移动变量中所有位元,位元向左/向右移动之后,最高位/最低为的位元会被移除并补0:5 << 1 = 10 //5的二进制为00101,全部位元向左移动一位数后便会变成 010105 >> 1 = 2 //5的二进制为00101,全部位元向右移动一位数后便会变成 00010位元:即我们常说的Bit,指二进制中的一位,也称二进制位,是二进制最小信息单位。十进制中,所有位数向左移动一位变为原来的十倍,向右移动一位变为原来的十分之一,二进制中也是如此,向左移动一位会变为原来的两倍,移动两位则变为四倍。对于电脑来说,进行位元运算要比乘除法快不少(在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同,仍然快于乘法运算),所以对于性能要求较高的应用中,可以多考虑使用位元运算取代乘除法,但缺点是代码可读性就没那么高了。&学过C语言的应该都接触过&符号,它能将两个变量对应的位元进行’与’逻辑运算并产生新的变量。最基本的如:0 & 0 = 01 & 0 = 00
...
继续阅读
(21)