C语言中的位运算
在C语言中,左位移运算<<可以当作是乘以2^n,比如
212<<10就是
11010100 → 110101000000000000就是乘以2^10
212 << 10 = 212 × 2^10 = 212 × 1024 = 217088如果结果超出变量的存储容量,移位过多会导致整数溢出。
右位移运算>>可以当作是除以2^n,比如
212>>3就是
11010100 (original)
→ 00011010 (after shifting 3 positions)就是除以2^3
212 >> 3 = 212 ÷ 2³ = 212 ÷ 8 = 26这里要注意的是,对于无符号类型在左边加0,对于符号类型需要具体情况具体分析
评论已关闭