1、判斷一個數字X的i位是否是1spa
方法:code
2、把一個數字二進制下的第i位改爲1blog
方法:class
x = x | (1 << (i-1)) 原理
原理:二進制
與「一」相似,直接看」例子「吧 方法
例子:di
x = 13 (1101)2 i = 2co
∴ 1 << (i-1) = 1 << 1 = 102 = 00102數字
∴ x | (1 << (i-1))
= 11012 | 00102
= 11112
3、把一個數字二進制下的最靠右的第一個1改爲0(去掉)
方法:
x = x & (x-1)
原理:
十進制下的數減了1後,二進制下的數最右邊的1確定會變成0,因此經過「與」一下就能夠把最靠右的第一個1改爲0
例子:
x = 13 (1101)2
∴ x-1 = 12 = 11002
∴ x & (x-1)
= 11012 & 11002
= 11002