位运算、进制转换
一、前言
位运算和进制转换都是非常热门的题目。在 CCF CSP-J/S,GESP 初赛的时候有选择题,其中大规模的就是位运算和进制转换。根据近 10 10 10 年的调查情况,有接近 10 % 10\% 10% 的题目考察位运算,有接近 30 % 30\% 30% 的题目考察进制转换。
二、位运算
1. 按位与 &
例题: ( 1101101 ) 2 & ( 101001 ) 2 = ( 0101001 ) 2 (1101101)_2 \& (101001)_2=(0101001)_2 (1101101)2&(101001)2=(0101001)2
| 数字1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
|---|---|---|---|---|---|---|---|
| 数字2 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
| 结果 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
技巧:全 1 1 1 则 1 1 1,一 0 0 0 则 0 0 0
2. 按位或 |
例题: ( 1101101 ) 2 ∣ ( 101001 ) 2 = ( 1101101 ) 2 (1101101)_2 | (101001)_2=(1101101)_2 (1101101)2∣(101001)2=(1101101)2
| 数字1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
|---|---|---|---|---|---|---|---|
| 数字2 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
| 结果 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
技巧:全 0 0 0 则 0 0 0,一 1 1 1 则 1 1 1
3. 按位异或 ^
例题: ( 1101101 ) 2 (1101101)_2 (1101101)2 ^ ( 101001 ) 2 = ( 1000100 ) 2 (101001)_2=(1000100)_2 (101001)2=(1000100)2
| 数字1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
|---|---|---|---|---|---|---|---|
| 数字2 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
| 结果 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
技巧:一 1 1 1 则 1 1 1,否则为 0 0 0
4. 按位取反 ~
例题: ( 1101101 ) 2 = ( 0010010 ) 2 ~ (1101101)_2=(0010010)_2 (1101101)2=(0010010)2
| 数字 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
|---|---|---|---|---|---|---|---|
| 结果 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
技巧: 1 1 1 则 0 0 0,否则为 1 1 1
5. 按位左移 <<
例题: ( 1101101 ) 2 < < ( 2 ) (1101101)_2 << (2) (1101101)2<<(2) 10 10 10 = ( 110110100 ) 2 =(110110100)_2 =(110110100)2
技巧:左移 n n n 位就添 n n n 个 0 0 0
6. 按位右移 >>
例题: ( 1101101 ) 2 > > ( 2 ) (1101101)_2 >> (2) (1101101)2>>(2) 10 10 10 $
技巧:右移 n n n 位就取前 n n n 位
三、进制转换
1. 二进制数计算
例 1 1 1: ( 101 ) 2 + ( 11 ) 2 = ( 1000 ) 2 (101)_2+(11)_2=(1000)_2 (101)2+(11)2=(1000)2
【解析】
1 + 1 = 2 1+1=2 1+1=2,满 2 2 2 进 1 1 1,进 1 1 1 写 0 0 0
0 + 1 + 1 = 2 0+1+1=2 0+1+1=2,满 2 2 2 进 1 1 1,进 1 1 1 写 0 0 0
1 + 1 = 2 1+1=2 1+1=2,满 2 2 2 进 1 1 1,进 1 1 1 写 0 0 0
例 2 2 2: ( 101 ) 2 − ( 11 ) 2 = ( 10 ) 2 (101)_2-(11)_2=(10)_2 (101)

最低0.47元/天 解锁文章
6568

被折叠的 条评论
为什么被折叠?



