一,数据表示
1,进制的转换
N进制转10进制:按权展开法
26B.4(十六进制) => 2 * 16^2 + 6 * 16^1 + 11 * 16^0 + 4 * 16^-1 = 619.25
10进制转N进制:短除法
456(十进制转二进制)=>
456 / 2 = 228……0
228 / 2 = 114……0
114 / 2 = 57……0
57 / 2 = 28……1
28 / 2 = 14……0
14 / 2 = 7……0
7 / 2 = 3……1
3 / 2 = 1……1
倒取余数:111001000
二进制,八进制,十六进制互转,按位取数
2,原码,反码,补码,移码
用一个字节表示首位是符号为0整数,1负数
数值1 | 数值-1 | 数值1+(-1) | 定点整数 | 定点小数 | |
原码 | 0000 0001 | 1000 0001 | 1000 0010 | -(2^n-1) ~ 2^n-1 | -(1-2^-(n-1)) ~ (1-2^-(n-1)) |
反码 | 0000 0001 | 1111 1110 | 1111 1111 | -(2^n-1) ~ 2^n-1 | -(1-2^-(n-1)) ~ (1-2^-(n-1)) |
补码 | 0000 0001 | 1111 1111 | 0000 0000 | -(2^n) ~ 2^n - 1 | -1 ~ (1-2^-(n-1)) |
移码 | 1000 0001 | 0111 1111 | 1000 0000 | -(2^n) ~ 2^n - 1 | -1 ~ (1-2^-(n-1)) |
原码:十进制转二进制
反码:原码除去符号位,其他按位取反
补码:反码加一
移码:补码的符号位取反
3,浮点数运算
N = 尾数 * 基数^指数,例如:9.527*10^3
尾数用补码,阶码(指数)用移码,对阶时,小数向大数看齐