1. 进制转换
(1) 十进制转八进制/十六进制
先将十进制转换成二进制,再将二进制转换为八进制/十六进制
(2) 十进制转八进制
将其转换为二进制,从右向左三三分组,左边不够补符号位、
例如: 100 ----> 001 100 100 ---->144
(3) 十进制转十六进制
将其转换为二进制,从右向左,四四分组,左边不够补符号位
例如: 100 ----> 0110 0100 ---->64
(4) 八进制转十六进制
先将八进制转换成二进制,再转十六进制
2. 基础数据类型
字符: char (1个字节)
整型: short (2个字节) , int (4个字节), long (4个字节) , long long (8个字节)
浮点: float (4个字节), double (8个字节), long double(可以当作double)
布尔类型: bool (1个字节)
注意:在程序中,标记符号类型(unsigned char---无符号)是正数,范围是0~255,(char) 为有符号,范围是(-128,127).
3. 原码、反码以及补码
(1) 对于无符号的整数,按权展开 例如:10--->00001010 (原码=反码=补码)
(2) 对于有符号的整数:
也就是负数,先将其原码按位取反得到反码,再将反码加1得到补码。
例如:-13
原码:00001101 反码:11110010 补码:11110011
-1 原码:00000001 反码:11111110 补码:11111111
4. 小数如何用二进制存储
单精度浮点型(32位):① 正数为0,负数为1
② 指数位:0~255 (2^8),指数值-127=实际指数
③ 尾数(有效值): 要的是小数点之后的值,不足补0
例如:12.5= 00001100.1 = 1.1001 x 2^3
符号位 (1位) 指数位 (8位) 尾数位 (23位)
0 10000010 (3+127) 100100000000000000
双精度(64位)与单精度类似:① 正数为0,负数为1
② 指数位:0~2047(2^11),指数值-1023=实际指数
③ 尾数(有效值): 要的是小数点之后的值,不足补0
符号位(1位) 指数位(11位) 尾数位(52位)