计算机基础-存储单位

存储单位换算

计算机中一切数据最终都是 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%

相关推荐
小妖6662 天前
console.log 显示内容不全怎么办
javascript·js·console.log
padane228 天前
gmssl编译wasm
ubuntu·html·密码学·wasm·js
我命由我123459 天前
VSCode - VSCode 自定义折叠区域
前端·javascript·ide·vscode·前端框架·编辑器·js
审判长烧鸡12 天前
【AI问答/前端】前端瞒天过海局(三)
前端·vue·html5·js
星星~笑笑13 天前
react Next.js oss上传 上传阿里云
javascript·react.js·阿里云·js
之歆24 天前
DAY_17深度博客:CSS 响应式布局 · BFC · JavaScript 完全指南(上)
javascript·js
TA远方1 个月前
【JavaScript】Promise对象使用方式研究和理解
javascript·编程·脚本·web·js·promise·委托
我命由我123451 个月前
前端开发概念 - 无障碍树
javascript·css·笔记·学习·html·html5·js
苦夏木禾1 个月前
URL 类 详解
node.js·js