SlideShare a Scribd company logo
1 of 30
BIT HACKS
lancer1268
BITWISE OPERATION
Binary number
• 19 10 = 10011 2
• 7 10 = 111 2
AND
• int a = 3 = 011 2
int b = 5 = 101 2
• a & b = 1 = 001 2
011
& 101
--------
= 001
OR
• int a = 3 = 011 2
int b = 5 = 101 2
• a | b = 7 = 111 2
011
| 101
--------
= 111
XOR (Exclusive OR)
• int a = 3 = 011 2
int b = 5 = 101 2
• a ^ b = 6 = 110 2
011
^ 101
--------
= 110
NOT
• 1變0,0變1
• 假設只有4個bit
• a = 3 = 0011 2
~a = 12 = 1100 2
Shift
• 正數 right-shift
a = 11 = 1011 2
a >> 2 = 2 = 0010 2
• 正數 left-shift
a = 11 = 1011 2
a << 2 = 2 = 1100 2
TRICKS
正負號
• 正:0 負:-1
int sign = a >> 31;
• 正:1 負:-1
int sign = 1 | ( a >> 31 );
• 正:1 零:0 負:-1
int sign = ( a != 0 ) | ( a >> 31 );
不同正負號
• 計算幾何判斷相交、凸包…
• 不同正負號:true 同正負號:false
bool diff = ( a ^ b ) >> 31 ;
是不是 2 的冪次
• 例子:8 ⇒ 𝑦𝑒𝑠 , 7 ⇒ 𝑛𝑜
• 正整數
bool result = ( a & ( a – 1 ) ) == 0 ;
• 考慮0
bool result = a && !( a & ( a – 1 ) ) ;
計算有幾個 bit 是 1
• 基礎方法
for( cnt = 0 ; a ; a >>= 1 ) cnt += a & 1 ;
• 查表
cnt = table256[ a & 0xff ] +
table256[ ( a >> 8 ) & 0xff ] +
table256[ ( a >> 16 ) & 0xff ] +
table256[ a >> 24 ];
往上取2的冪次
• 例子: 5 ⇒ 8
• --a ;
a |= a >> 1 ;
a |= a >> 2 ;
a |= a >> 4 ;
a |= a >> 8 ;
a |= a >> 16 ;
++a ;
最右邊的 1
• 也叫 lowbit
• 例子: 010010 2 ⇒ 000010 2
101000 2 ⇒ 001000 2
• lowbit(x) = x & ( -x ) ;
BITMASK
集合
• 有一個由 0, 1, ⋯ , 𝑛 − 1 構成的集合 𝑆
• 我們可以用一個 𝑛 bit的整數 𝑚 𝑆 來表示 𝑆
• 第 𝑖 個 bit 為 1 代表 𝑖 在 𝑆 裡面(從右邊數)
• 例子:
𝑛 = 5
𝑆 = 0, 2, 3 ⇒ 𝑚 𝑆 = 01101 2
𝑆′
= 1, 2, 4 ⇒ 𝑚 𝑆′ = 10110 2
常用的集合
• 𝑆1 = 0, 1, ⋯ , 𝑛 − 1
𝑚 𝑆1
= ( 1 << n ) – 1 ;
• 𝑆2 = 𝑖
𝑚 𝑆2
= 1 << i ;
Set operations
• 給你兩個集合,你可以做一些事
– 聯集 Union
– 交集 Intersection
– 對稱差 Symmetric Difference
– 判斷包含 Inclusion
聯集 Union
• 聯集其實就是在做 bitwise OR
• 𝑚 𝑆∪𝑆′ = 𝑚 𝑆 | 𝑚 𝑆′
• 例子:
𝑛 = 5
𝑆 = 0, 3, 4 ⇒ 𝑚 𝑆 = 11001 2
𝑆′
= 0,1,4 ⇒ 𝑚 𝑆′ = 10011 2
𝑆 ∪ 𝑆′
= 0,1,3,4
⇒ 𝑚 𝑆∪𝑆′ = 11011 2
交集 Intersection
• 交集其實就是在做 bitwise AND
• 𝑚 𝑆∩𝑆′ = 𝑚 𝑆 & 𝑚 𝑆′
對稱差 Symmetric Difference
• 對稱差其實就是在做 bitwise XOR
• 𝑚 𝑆Δ𝑆′ = 𝑚 𝑆 ^ 𝑚 𝑆′
判斷包含 Inclusion
• 判斷包含可以看交集以後有沒有變
• 𝑆 ⊆ 𝑆′ ? = 𝑆 ∩ 𝑆′ = 𝑆 ?
bool inc = 𝑚 𝑆 & 𝑚 𝑆′ == 𝑚 𝑆;
MORE TRICKS
枚舉子集
• 有時會需要枚舉子集合
• 例子:
𝑆 = 0, 1, 3
∅, 0 , 1 , 3 , 0,1 , 0,3 , 1,3 , 0,1,3
0000, 0001, 0010, 1000,0011, 1001, 1010, 1011
枚舉子集 - simplified
• 先考慮比較簡單的版本
• 目標:枚舉 𝑆 = 0, 1, ⋯ , 𝑛 − 1 的子集合
• 作法:就是 0 ~ 2 𝑛
− 1
– 0...000
– 0...001
– 0...010
– 0...011
– ...
– 1...111
枚舉子集 - original
• 目標:枚舉 𝑆 的子集合
• 有一些用不到的 bit 怎麼辦?那就不要考慮他們!
for ( int sub = sup ; ; sub = ( sub - 1 ) & sup ) {
// do something
if ( sub == 0 ) break ;
}
枚舉子集 2
• 有時需要枚舉大小為 𝑘 的子集合們
• 例子:
𝑆 = 0, 1, 3 , 𝑘 = 2
0,1 , 0,3 , 1,3
0011, 1001, 1010
枚舉子集 2 - simplified
• 先考慮 𝑆 = 0, 1, ⋯ , 𝑛 − 1
• 例子:
int lower = ( 1 << k ) - 1, upper = 1 << n ;
for ( int comb = lower ; comb < upper ; ) {
// do something
comb = next_permu( comb ) ;
}
枚舉子集 2 - simplified
• 重點是找出下一個排列,自己畫個圖看看
int next_permu( int p ) {
int x = lowbit( p ), y = p + x ;
return y | ( ( p & ~y ) / x >> 1 ) ;
// or return y | ( ( p & ~y ) >> ( lg( x ) + 1 ) ) ;
}

More Related Content

More from Wei Luan Wang (6)

Flow
FlowFlow
Flow
 
Graph basic
Graph basicGraph basic
Graph basic
 
Binary search
Binary searchBinary search
Binary search
 
DCPC 2015 中文題意
DCPC 2015 中文題意DCPC 2015 中文題意
DCPC 2015 中文題意
 
CERC 2014 中文題意
CERC 2014 中文題意CERC 2014 中文題意
CERC 2014 中文題意
 
生成樹專題
生成樹專題生成樹專題
生成樹專題
 

Recently uploaded

113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本
113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本
113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本
中 央社
 
資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報
資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報
資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報
LinPhil
 
教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗
教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗
教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗
中 央社
 
國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文
國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文
國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文
中 央社
 
會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答
會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答
會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答
中 央社
 
113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本
113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本
113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本
中 央社
 
新加坡博伟教育学院 Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...
新加坡博伟教育学院  Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...新加坡博伟教育学院  Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...
新加坡博伟教育学院 Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...
微信 tytyqqww业务接单
 
會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學
會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學
會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學
中 央社
 
真的可以找黑客修改塔斯马尼亚大学 University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...
真的可以找黑客修改塔斯马尼亚大学  University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...真的可以找黑客修改塔斯马尼亚大学  University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...
真的可以找黑客修改塔斯马尼亚大学 University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...
微信 tytyqqww业务接单
 
【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...
【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...
【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...
微信 tytyqqww业务接单
 

Recently uploaded (15)

假营业执照价钱 【制作+微:892719599】
假营业执照价钱                   【制作+微:892719599】假营业执照价钱                   【制作+微:892719599】
假营业执照价钱 【制作+微:892719599】
 
113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本
113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本
113年國中教育會考社會科試題本 113年國中教育會考社會科試題本 113年國中教育會考社會科試題本
 
資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報
資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報
資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報資訊安全宣導簡報
 
𝐃𝐚𝐭𝐚 𝐏𝐫𝐨𝐭𝐞𝐜𝐭𝐢𝐨𝐧 𝐎𝐟𝐟𝐢𝐜𝐞𝐫 (𝐃𝐏𝐎) 𝐎𝐧𝐥𝐢𝐧𝐞 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠"
𝐃𝐚𝐭𝐚 𝐏𝐫𝐨𝐭𝐞𝐜𝐭𝐢𝐨𝐧 𝐎𝐟𝐟𝐢𝐜𝐞𝐫 (𝐃𝐏𝐎) 𝐎𝐧𝐥𝐢𝐧𝐞 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠"𝐃𝐚𝐭𝐚 𝐏𝐫𝐨𝐭𝐞𝐜𝐭𝐢𝐨𝐧 𝐎𝐟𝐟𝐢𝐜𝐞𝐫 (𝐃𝐏𝐎) 𝐎𝐧𝐥𝐢𝐧𝐞 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠"
𝐃𝐚𝐭𝐚 𝐏𝐫𝐨𝐭𝐞𝐜𝐭𝐢𝐨𝐧 𝐎𝐟𝐟𝐢𝐜𝐞𝐫 (𝐃𝐏𝐎) 𝐎𝐧𝐥𝐢𝐧𝐞 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠"
 
教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗
教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗
教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗教育會考寫作測驗
 
國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文
國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文
國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文國中會考國文
 
會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答
會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答
會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答會考解答
 
黑客改分,黑客改gpa,黑客改成绩,修改国外大学成绩黑客改GPA【微 tytyqqww 信】澳大利亚天主教大学__Australian Catholic ...
黑客改分,黑客改gpa,黑客改成绩,修改国外大学成绩黑客改GPA【微 tytyqqww 信】澳大利亚天主教大学__Australian Catholic ...黑客改分,黑客改gpa,黑客改成绩,修改国外大学成绩黑客改GPA【微 tytyqqww 信】澳大利亚天主教大学__Australian Catholic ...
黑客改分,黑客改gpa,黑客改成绩,修改国外大学成绩黑客改GPA【微 tytyqqww 信】澳大利亚天主教大学__Australian Catholic ...
 
黑客挂科改成绩科廷大学__Curtin University1.🎉GPA低了,怎么办?别担心!黑客改成绩轻松搞定~ 😎国外大学也能用哦!再也不怕被开除啦!...
黑客挂科改成绩科廷大学__Curtin University1.🎉GPA低了,怎么办?别担心!黑客改成绩轻松搞定~ 😎国外大学也能用哦!再也不怕被开除啦!...黑客挂科改成绩科廷大学__Curtin University1.🎉GPA低了,怎么办?别担心!黑客改成绩轻松搞定~ 😎国外大学也能用哦!再也不怕被开除啦!...
黑客挂科改成绩科廷大学__Curtin University1.🎉GPA低了,怎么办?别担心!黑客改成绩轻松搞定~ 😎国外大学也能用哦!再也不怕被开除啦!...
 
113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本
113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本
113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本113 年國中教育會考 自然科試題本
 
成绩修改,黑客入侵,黑客修改成绩,大学成绩能改吗改GPA,大学改分数哇塞,听说有人改大学毕业成绩了?😲 黑客大大太牛了吧!这就是传说中的学霸操作吗?佩服佩...
成绩修改,黑客入侵,黑客修改成绩,大学成绩能改吗改GPA,大学改分数哇塞,听说有人改大学毕业成绩了?😲 黑客大大太牛了吧!这就是传说中的学霸操作吗?佩服佩...成绩修改,黑客入侵,黑客修改成绩,大学成绩能改吗改GPA,大学改分数哇塞,听说有人改大学毕业成绩了?😲 黑客大大太牛了吧!这就是传说中的学霸操作吗?佩服佩...
成绩修改,黑客入侵,黑客修改成绩,大学成绩能改吗改GPA,大学改分数哇塞,听说有人改大学毕业成绩了?😲 黑客大大太牛了吧!这就是传说中的学霸操作吗?佩服佩...
 
新加坡博伟教育学院 Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...
新加坡博伟教育学院  Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...新加坡博伟教育学院  Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...
新加坡博伟教育学院 Dimensions International College怎么找黑客改成绩【微 tytyqqww 信】GPA低,要被开除怎么办...
 
會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學
會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學
會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學會考數學
 
真的可以找黑客修改塔斯马尼亚大学 University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...
真的可以找黑客修改塔斯马尼亚大学  University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...真的可以找黑客修改塔斯马尼亚大学  University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...
真的可以找黑客修改塔斯马尼亚大学 University of Tasmania改成绩黑客竟然可以找到漏洞来修改大学成绩,这真的让我感到非常惊讶和佩服。【...
 
【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...
【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...
【微 tytyqqww 信】网上找黑客改蒙纳士大学__Monash University修改成绩黑客修改成绩,黑客改高考成绩,黑客修改中考成绩1.🎉你是否...
 

Bit Hack