十进制转成二进制:除二反序取余法
例:10
10除以2等于5余0
5除以2等于2余1
2除以2等于1余0
1除以2余1
10从十进制转成二进制为1010
十进制的小数转换成二进制:小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转化后的结果。
二进制转成十进制:权值法
将一个二进制数依次从末尾开始乘以2的n次幂 n从0 开始
例:101010
0*2^0=0
1*2^1=2
0*2^2=0
1*2^3=8
0+2+0+8=10
101010从二进制转成十进制为10
十进制转成八进制:除八反序取余法
八进制转成十进制:权值法(将一个八进制数依次从末尾开始乘以8的n次幂 n从0 开始)
十进制与十六进制的相互转化方法与上述方法类似
原码
一个数的原码(原始的二进制码)有如下特点:
- 最高位做为符号位,0表示正,为1表示负
- 其它数值部分就是数值本身绝对值的二进制数
- 负数的原码是在其绝对值的基础上,最高位变为1
反码
- 对于正数,反码与原码相同
- 对于负数,符号位不变,其它部分取反(1变0,0变1)
补码(在计算机系统中,数值一律用补码来存储)
- 对于正数,原码、反码、补码相同
- 对于负数,其补码为它的反码加1
- 补码符号位不动,其他位求反,最后整个数加1,得到原码
例:char ch = 10
原码:0000 1010(char类型为一个字节对应8位,int类型为四个字节对应32位,1010前要加上四个0)
反码:0000 1010
补码:0000 1010
两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃
字符串常量:由双引号括起来的字符序列
字符串:内存中一段连续的char空间,以' '(数字0)结尾
'a'字符串,"a"字符串常量,"a" 包含两个字符'a'和’ ’
scanf函数
加上#define _CRT_SECURE_NO_WARNINGS去除警告
运算符优先级
1() [] -> .由左向右
2! ~ ++ -- + - * (type) sizeof 由右向左
3* / % 由左向右
4+ - 由左向右
5<< >> 由左向右
6< <= > >= 由左向右
7== != 由左向右
8& 由左向右
9^ 由左向右
10| 由左向右
11&& 由左向右
12|| 由左向右
13?: 由右向左
14= += -= *= /= %= &= ^= |= <<= >>= 由右向左
15, 由左向右
选择结构
if语句,if…else语句,if…else if…else语句, 三目运算符, switch语句



