3、计算机数据存储与编码详解

计算机数据存储与编码详解

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 位二进制数转十进制
二进制数 十进
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值