计算机数据存储与编码详解
1. 数制转换基础
1.1 数值表示原理
在表示一个数时,我们从右往左计数,起始位置为 0。在每个位置上,将基数 r 提升到该位置对应的幂次,然后乘以该位置上的数字值。将所有结果相加,就得到了这个数所代表的值。
以二进制数系统为例,其基数 r 为 2,因此只有两个符号来表示数字,即 (d_i = 0) 或 1。一个二进制数可以表示为:
(d_{n–1} × 2^{n–1} + d_{n–2} × 2^{n–2} + … + d_1 × 2^1 + d_0 × 2^0)
其中,n 是数字的位数,且每个 (d_i) 取值为 0 或 1。
1.2 二进制转无符号十进制
将二进制转换为十进制,可通过计算 2 的位置次幂,再乘以该位置上的位值来实现。具体算法如下:
1. 设结果 result 初始值为 0。
2. 对于 (i = 0, …, (n - 1)),重复执行:将 (2^{d_i} × 32^i) 累加到 result 中。
这个算法在每个位位置上计算 2 的幂次,然后乘以相应的位值(0 或 1)。需要注意的是,虽然目前我们只考虑整数,但该算法也适用于小数,只需将基数 r 的指数扩展到负数,即 (r^{n−1}, r^{n−2}, …, r^1, r^0, r^{−1}, r^{−2}, …)。
1.3 练习
以下是一些二进制转十进制的练习:
8 位二进制数转十进制
| 二进制数 | 十进 |
|---|
超级会员免费看
订阅专栏 解锁全文
983

被折叠的 条评论
为什么被折叠?



