84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
对于形如value = value | 1 << bit_number的表达式,目的是将指定位设为1。
value = value | 1 << bit_number
不明白的是:此表达式运算符优先级|大于<<吗,要是这样的话,例如:value为01011100,bit_number为3,可是计算之后很多位发生了变化,感觉不太对。那要是<<优先级大于|,那么先将bit_number左移一位,再进行或操作,感觉也是好多为发生了变化。所以,关键点是指定位指的是哪几个位?
|
<<
value
bit_number
先谢谢了。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
首先,<<的优先级大于|。
其次你的理解有个错误:<<右移运算符是把运算法左侧的参数右移右侧参数个位置,也就是说1 << bit_number不是把bit_number右移1位,而是把1右移bit_number位。举你的例子,bit_number为3时,1 << bit_number的结果是00001000。再与value的01011100进行与操作,就能把右数第4位变成1了。
1 << bit_number
1
3
00001000
01011100
4
指定位就是某一位,这里指代的是从右往左数的第bit_number+1位
bit_number+1
http://jb51.net/article/37282.htm优先级
<<优先级高于|,运算之后value至多只有一位发生变化。
这个表达式的作用是将value的第bit_number为置1.
比如:value = 01010100, bit_number = 3,运算结果就是(01010100 | 1000) = 01011100
value = 01010100, bit_number = 3
(01010100 | 1000) = 01011100
1 << bit_number 是0000 0001(假设为8 bit)左移bit_number位,而不是bit_number左移一位,基本概念不熟悉,先看看基础。。。。
<< 的优先级比 | 高.
1 << bit_number 是把 1 左移 bit_number 位, 所以它结果是一个只包含一个 1 的二进制数 (它从右到左数的第 bit_number 位是 1). 比如, 1 << 3 得到的二进制数是 1000.
1 << 3
这样以后再和 value 按位作与运算, 作用应该一目了然了.
首先,
<<
的优先级大于|
。其次你的理解有个错误:
<<
右移运算符是把运算法左侧的参数右移右侧参数个位置,也就是说1 << bit_number
不是把bit_number
右移1
位,而是把1
右移bit_number
位。举你的例子,
bit_number
为3
时,1 << bit_number
的结果是00001000
。再与value
的01011100
进行与操作,就能把右数第4
位变成1
了。指定位就是某一位,这里指代的是从右往左数的第
bit_number+1
位http://jb51.net/article/37282.htm
优先级
<<
优先级高于|
,运算之后value
至多只有一位发生变化。这个表达式的作用是将
value
的第bit_number
为置1.比如:
value = 01010100, bit_number = 3
,运算结果就是(01010100 | 1000) = 01011100
1 << bit_number 是0000 0001(假设为8 bit)左移bit_number位,而不是bit_number左移一位,基本概念不熟悉,先看看基础。。。。
<<
的优先级比|
高.1 << bit_number
是把 1 左移 bit_number 位, 所以它结果是一个只包含一个 1 的二进制数 (它从右到左数的第 bit_number 位是 1). 比如,1 << 3
得到的二进制数是 1000.这样以后再和
value
按位作与运算, 作用应该一目了然了.