CSP初赛-进制及位运算与指针专题
进制
- 进制转换
- 十进制转n进制(整数小数分开计算)
- 整数部分:除n倒取余
- 小数部分:乘n正取整
- 二进制转八进制(每三位划一位)
- 每三位划一位(从小数点开始),例如:10|101|010|.|101|
- 拆开转换,例如:2|5|2|.|5|
- 二进制转十六进制(每四位$2$划一位${16}$)
- 每四位划一位(从小数点开始),例如:|1010|1010|.|101
- 拆开转换,例如:|a|a|.|a|
- x进制转十进制
- 例如:10101010.101(2进制)
位运算与指针
- 位运算
- 转为二进制,右对齐
- 按位与(&)
- 1 & 0 = 0
- 0 & 1 = 0
- 1 & 1 = 1
- 0 & 0 = 0
- 按位或(|)
- 1 | 0 = 1
- 0 | 1 = 1
- 1 | 1 = 1
- 0 | 0 = 0
- 按位异或(^)
- 1 ^ 0 = 1
- 0 ^ 1 = 1
- 0 ^ 0 = 0
- 1 ^ 1 = 0
- 按位取反(~)
- ~1 = 0
- ~0 = 1
- 左移(<<)
- 右移(>>)
- 原码、补码和反码
- 原码(等于值的二进制,共8位,用0补足,第8位是符号位(0为正数,1为负数))
- 反码(正数时,等于原码;负数时,等于原码按位取反,符号位不变)
- 补码(正数时,等于反码;负数时,等于反码加一)
- 指针
- 内存中每个单元被赋予的唯一序号,称作“地址”
- 存放地址所用的变量被叫做“指针变量”,简称“指针”