计算机基础-存储单位

存储单位换算

计算机中一切数据最终都是 0 和 1(二进制),最小单位是 bit(位)。

1 bit(位) = 一个 0 或 1

1 Byte(字节) = 8 bit ← 这是最基本的存储单元

1 KB = 1024 Byte ← 约一千字节

1 MB = 1024 KB ← 约一百万字节

1 GB = 1024 MB ← 约十亿字节

1 TB = 1024 GB ← 约一万亿字节

换算关系:

1 KB = 1024 B = 2^10 B

1 MB = 1024 KB = 2^20 B = 1,048,576 B

1 GB = 1024 MB = 2^30 B = 1,073,741,824 B

速记口诀:每上一级乘以 1024(2 的 10 次方)。

注意:硬盘厂商用 1000 进制标注容量(所以买的 512GB 硬盘实际只有约 476 GiB),但编程中一律使用 1024 进制。

计算机只认识数字,要存储文字就需要「编码」把每个字符映射成数字。

常见编码及占用空间:

ASCII 编码(英文字符):

每个英文字母 / 数字 / 符号 = 1 字节

如 'A' = 65,'a' = 97,'0' = 48

UTF-8 编码(国际通用,前端最常用):

英文字母 / 数字 = 1 字节

中文汉字 = 3 字节

Emoji 表情 = 4 字节

UTF-16 编码(JavaScript 内部使用):

大部分字符(含中文)= 2 字节

罕见字符 / Emoji = 4 字节

实际计算练习

一篇 400 字的纯中文文章占多少内存?

假设用 UTF-8 编码:

400 个汉字 × 3 字节/汉字 = 1200 字节 = 1.17 KB

假设用 UTF-16 编码(JS 字符串内部):

400 个汉字 × 2 字节/汉字 = 800 字节 = 0.78 KB

问:一张 1920×1080 的未压缩图片占多少空间?

像素数:1920 × 1080 = 2,073,600 像素

每像素颜色(RGB):3 字节(红/绿/蓝各 1 字节,即 24 位色)

如果有透明度(RGBA):4 字节(加 1 字节 Alpha 通道)

未压缩大小:

RGB: 2,073,600 × 3 = 6,220,800 字节 ≈ 5.93 MB

RGBA: 2,073,600 × 4 = 8,294,400 字节 ≈ 7.91 MB

问:前端上传限制 5MB,最多能传多少字的文本?**

5 MB = 5 × 1024 × 1024 = 5,242,880 字节

纯英文:5,242,880 ÷ 1 = 5,242,880 个字符(约 520 万字)

纯中文(UTF-8):5,242,880 ÷ 3 = 1,747,626 个字符(约 175 万字)

前端开发中的实用对照表

| 数据类型 | 典型大小 | 说明 |

| 一个英文字符 | 1 B | ASCII / UTF-8 |

| 一个中文汉字 | 3 B(UTF-8) | 前端传输通常用 UTF-8 |

| 一个 Emoji | 4 B | UTF-8 编码 |

| 一条短信(70 字) | ~210 B | UTF-8 中文 |

| 一篇文章(400 字) | ~1.2 KB | UTF-8 中文 |

| 一个小图标(favicon) | 1-5 KB | .ico / .png |

| 一张 UI 切图 | 50-300 KB | 优化后的 PNG/WebP |

| 一张手机照片 | 2-5 MB | JPEG |

| 一首 MP3 歌曲 | 3-8 MB | 128-320kbps |

| 一部打包后的前端项目(JS+CSS) | 200KB - 2MB | Gzip 后通常 < 500KB |

| 一个 node_modules 目录 | 200MB - 1GB+ | 这就是为什么 node_modules 是黑洞 |

网速与带宽

网速单位通常是 bit(位),而文件大小用 Byte(字节):

100 Mbps 宽带 = 100 Megabit per second

实际下载速度 = 100 ÷ 8 = 12.5 MB/s

常见换算:

100 Mbps 宽带 → 最快约 12.5 MB/s 下载速度

1000 Mbps(千兆) → 最快约 125 MB/s

前端性能指标参考:

首页加载总资源 < 1MB(未压缩)为优秀

单个 JS bundle < 250KB(Gzip 后)为合理

接口响应时间 < 200ms 用户无感知

图片建议使用 WebP 格式,体积比 PNG 小 30-50%

相关推荐
小小龙学IT4 小时前
第一节 QML 背景介绍
c++·qt·js
rockey62718 小时前
C#脚本引擎之AScript与Jurassic、Jint对比
javascript·c#·.net·js·script·动态脚本
breeze jiang9 天前
NestJS MVC 实战:用 hello 项目 7 个文件讲清分层、装饰器、依赖注入与错误处理
node.js·mvc·js
weixin_4316004411 天前
前端数据埋点(1):一次点击如何变成一条埋点
前端·js·数据埋点
記億揺晃着的那天12 天前
NAS 内网域名访问为什么需要浏览器授权
网络·nginx·js·nas
—Qeyser12 天前
html 可视化海报模板编辑器
css·html·js
我命由我1234513 天前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
其美杰布-富贵-李19 天前
第 8 篇:Three.js 材质系统
javascript·three.js·js
. . . . .1 个月前
EJS模板引擎
js
shawxlee1 个月前
vue3在public下封装config.js自定义配置动态数据,可在打包后直接修改,方便后端部署及后续维护
前端·javascript·经验分享·vue·团队开发·js·项目优化