官网大纲
数据编码(原码、反码、补码)
进制转换(二进制、八进制、十进制、十六进制)
位运算
算法的概念与描述(自然语言描述、流程图描述、伪代 码描述)
C++一维数组基本应用
字符串及其函数
算法:枚举法
算法:模拟法
1. 数据编码
计算机的数据都以二进制形式存储,因此衍生出了数据编码。由1和0组成。
其中一个数据由八位组成:
最高位为符号位(1表示负数,0表示正数)
剩下七位为数值位,也称为真值
***计算机内存、CPU 运算统一使用 (补码) ***
原码:直观;但是加减反复杂,且有两个0
反码:解决了减法运算的问题,将减法运算转换成加法运算;但是有循环进位的问题
补码:解决了反码的双零问题,并多表示一个最小值,并简化了加减法运算,但是不直观
正数: 原码、反码、补码相同
负数: 原码转为反码(将原码的符号位不变,其余位按位取反)
反码转为补码(反码+1)
对于一个n位的二进制数,其表示范围是
~
例如:5的原码/反码/补码 都是 0000 0101
-5的原码是:1000 0101 -5的反码是:1111 1010 -5的补码是1111 1011
例如:补码是0100 1000 他的反码和原码都是0100 1000
补码是1100 1000 他的反码是1100 0111 他的原码是 1011 1000 值为-56
2. 进制转换
进制数 前缀标识 后缀标识 二进制 0b B 八进制 0 O 十进制 无前缀 D 十六进制 0x H
- 二 八 十六 进制转为十进制(乘加法)
-
- 十 进制转为二 八 十六进制(短除法)
- 二 八 互转(三个蛋)
- 二 十六 互转(四个蛋)
3. 位运算 (对二进制进行位运算)
运算符 符号 说明 举例 << 左移运算符 将二进制向左移动,右侧以0补齐
左移一位相当于乘2
>> 右移运算符 将二进制向右移动,右侧数字会溢出
右移一位相当于除2(不保留小数)
& 按位与 有0则0 | 按位或 有1则1 ~ 按位非 1 0 互换 ^ 按位异或 同0 异1