数据的表示
大约 2 分钟
数据的表示
进制转换
R 进制转十进制
使用按权展开法,具体操作方法为:将 R 进制的每一位数值用 Rk形式表示,即幂的底数为 R,指数为 k,k 与该位和小数点之间的距离有关。当该位位于小数点左边,k 值是该位与小数点之间数码的个数,而当该位位于小数点右边,k 值是负值,其绝对值是该位和小数位之间的数码的个数加 1。
二进制转十进制:10100.01 = 1x24+1x22+1x2-2
七进制转十进制:604.01 = 6x72+4x70+1x7-2
十进制转 R 进制
采用短除法,即将数值除以 R,记录其余数。
94 转为二进制:94/2 = 47 余 0,47/2 = 23 余 1,23/2 = 11 余 1,11/2 = 5 余 1,5/2 = 2 余 1,2/2 = 1 余 0,1/2 = 0 余 1。将其倒序填写,因此 94 的二进制为:1011110
特殊进制转换
二进制转八进制与十六进制,从右到左分组转换,八进制取 3 位,十六进制取 4 位。
10001110 转八进制:10->2 001->1 110->6 === 216 10001110 转十六进制:1000->8 1110->E(14) === 8E
原码、反码、补码、移码
| 数值 1 | 数值-1 | 1-1 | |
|---|---|---|---|
| 原码 | 0000 0001 | 1000 0001 | 1000 0010 |
| 反码 | 0000 0001 | 1111 1110 | 1111 1111 |
| 补码 | 0000 0001 | 1111 1111 | 0000 0000 |
| 移码 | 1000 0001 | 0111 1111 | 1000 0000 |
最高位为符号位,1为负数 0为正数。 移码通常用来做为浮点运算中的阶码。
规则:
- 正数
- 原码、反码、补码都一致
- 移码:在补码基础上对首位进行取反
- 负数
- 反码:除符号位外,其他位置在原码上取反
- 补码:在反码基础上+1
- 移码:在补码基础上对首位进行取反
数值的范围
| 整数 | |
|---|---|
| 原码 | -(2n-1-1) ~ (2n-1-1) |
| 反码 | -(2n-1-1) ~ (2n-1-1) |
| 补码 | -2n-1 ~ (2n-1-1) |
当数位为8位时,原码、反码、补码的范围分别为:
- 原码:-27-1~27-1 (-127~127)
- 反码: -27-1~27-1 ( -127~127)
- 补码: -27~ 27-1 (-128~127)
浮点数运算
浮点数就是科学计数法的一种表示数的方式,例如1000的科学计数法为1.0 x 103。
浮点数表示:N = M * Re,其中M被称为尾数,e是指数,R为基数。
1000 + 119使用浮点数运算:
- 1000科学计数法:1.0 x 103
- 119科学计数法:0.119 x 103
- 尾数相加1.0 + 0.119 = 1.119
- 结果格式化(确保小数点左边第一位不能为0且不能为一位以上的数字):1.119 x 103
Loading...
