【Java SE 基础学习打卡】03 计算机中数据的表示、存储与处理
目录
- 前言
- 一、数据的表示:搞懂电脑 “认数据” 的规则
- 1.1 先分清:数据和信息不是一回事
- 1.2 关键知识点:电脑只认二进制(0 和 1)
- 1.3 别搞混:数据的单位有哪些?
- 二、数据的存储:知道数据 “放哪儿” 才不丢
- 2.1 数据存在哪儿?分 “临时存” 和 “长期存”
- 2.2 存储的核心逻辑
- 三、数据的处理:搞懂 “进制” 和 “转换” 不懵圈
- 3.1 先懂 “进制”:电脑和咱们的 “数字语言” 差异
- 3.2 进制转换:重点学 “二进制与十进制互转”
- (1)二进制转十进制:按权展开求和
- (2)十进制转二进制:除 2 取余,逆序排列
- 四、字符编码:让电脑 “读懂” 文字的关键
- 4.1 文字咋存?靠 “字符编码” 当 “翻译官”
- 4.2 常见的字符编码:重点记 UTF-8
- 4.3 编程必看:为啥一定要用 UTF-8?
- 总结
前言
刚开始学编程的小伙伴,可能会疑惑:“我写的代码里有数字、字母,电脑是怎么存这些东西的呀?” 其实电脑很 “笨”,它只认 0 和 1 这两个数字!这一节咱们就用大白话,聊聊电脑里的数据是咋用 0 和 1 表示的、存在哪儿,还有不同数字形式咋转换,最后再说说文字是咋变成电脑能认的 “密码” 的 —— 这些知识,以后写代码处理数据时肯定用得上。
一、数据的表示:搞懂电脑 “认数据” 的规则
1.1 先分清:数据和信息不是一回事
咱们平时总说 “数据”“信息”,其实它们俩不一样:
-
数据:就是没经过处理的 “原材料”,比如一串数字 “100”、一个字母 “A”,单独看不知道啥意思;
-
信息:是数据经过处理后有意义的结果,比如 “考试成绩 100 分”,这就知道是考得好啦。

在电脑里,数据和信息的界限有时很模糊 —— 比如你写代码时定义的变量 “score=95”,对电脑来说是数据,但对你来说就是 “分数 95” 这个信息。不用纠结太细,知道 “电脑先存数据,再处理成你能懂的信息” 就行。
1.2 关键知识点:电脑只认二进制(0 和 1)
为啥电脑只认 0 和 1?其实是因为电脑硬件的 “特性”—— 比如电路要么通电(用 1 表示)、要么断电(用 0 表示),用 0 和 1 最容易实现。这个规则是冯・诺依曼提出来的(不过最早想出二进制的是德国数学家莱布尼茨)。
简单说:电脑里所有东西,不管是数字、字母,还是图片、代码,最终都会变成一串 0 和 1 来存储和处理。比如你在代码里写的数字 “5”,电脑里其实是 “101”;字母 “A”,也会变成特定的 0 和 1 组合。
1.3 别搞混:数据的单位有哪些?
咱们说 “电脑内存 8G”“硬盘 512G”,这些 “G”“M” 就是数据单位。就像买水用 “升”、买米用 “斤”,电脑存数据也有自己的 “计量单位”,重点记这几个常用的:
| 单位 | 说明 | 换算关系 |
|---|---|---|
| 位(Bit) | 电脑最小的数据单位,只有 0 或 1 两种状态 | - |
| 字节(Byte) | 电脑存数据、传数据的基本单位 | 1Byte = 8Bit |
| 千字节(KB) | 存小文件(比如简单的代码文件)常用 | 1KB= 1024Byte |
| 兆字节(MB) | 存中等文件(比如图片、编程软件安装包) | 1MB=1024KB |
| 吉字节(GB) | 描述内存、硬盘容量常用 | 1GB=1024MB |
| 太字节(TB) | 大硬盘、服务器存储常用 | 1TB=1024GB |
这里要注意:数据单位是按 “1024 倍” 换算的,不是 10 倍哦!比如 1GB 不是 1000MB,而是 1024MB。
还有个词叫字长,简单说就是 CPU 一次能处理的二进制位数。比如 64 位 CPU,一次能处理 64 个 0 或 1 —— 字长越长,CPU 处理数据的速度越快,能算的数也越大。
二、数据的存储:知道数据 “放哪儿” 才不丢
2.1 数据存在哪儿?分 “临时存” 和 “长期存”
你写的代码、处理的文件,在电脑里存的地方不一样,主要分两种:
-
内存(RAM,临时存储):相当于电脑的 “临时工作台”—— 你打开编程软件、运行代码时,数据会临时存在这里,方便 CPU 快速调取。缺点是 “一断电就没”:比如你写代码没保存就突然关机,内存里的代码就丢了,所以一定要记得随时保存!
-
外存(长期存储):相当于电脑的 “储物柜”—— 你保存的代码文件、安装的软件,都会存在这里,就算关了电脑也不会丢。常见的外存有:固态硬盘(SSD,速度快,推荐)、机械硬盘(HDD,价格便宜)、U 盘、光盘这些。
简单总结:运行中的数据放内存,要长期保存的放外存—— 以后写代码时,“保存文件” 就是把内存里的临时数据,转到外存里长期存着。
2.2 存储的核心逻辑
数据在电脑里存储时,不管是内存还是外存,最终都会以二进制的形式排列。比如一个字节(8 位)的空间,能存储从 “00000000” 到 “11111111” 的二进制数据,对应十进制就是 0 到 255—— 这也是为啥早期 ASCII 码能表示 128 个字符(用 7 位二进制),因为 1 个字节的空间完全够用。
三、数据的处理:搞懂 “进制” 和 “转换” 不懵圈
3.1 先懂 “进制”:电脑和咱们的 “数字语言” 差异
咱们平时用的是 “十进制”(0-9,逢 10 进 1),但电脑用 “二进制”(0-1,逢 2 进 1)。有时候还会用到 “八进制”“十六进制”(比如写代码时表示颜色、内存地址),咱们不用学太复杂,先认清楚这几种进制的基本规则:
| 进制类型 | 数字范围 | 进位规则 | 代码中常用标识(可选) |
|---|---|---|---|
| 二进制 | 0、1 | 逢 2 进 1 | 无(默认根据上下文判断) |
| 十进制 | 0-9 | 逢 10 进 1 | 无(日常默认) |
| 八进制 | 0-7 | 逢 8 进 1 | 数字前加 “0”,如 012 |
| 十六进制 | 0-9、A-F(A=10) | 逢 16 进 1 | 数字前加 “0x”,如 0x1A |
给大家列几个常用的对应关系,记不住也没关系,知道有这个对应就行:
| 二进制 | 十进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 10 | 2 | 2 | 2 |
| 11 | 3 | 3 | 3 |
| 100 | 4 | 4 | 4 |
| 101 | 5 | 5 | 5 |
| 1111 | 15 | 17 | F |
| 10000 | 16 | 20 | 10 |
3.2 进制转换:重点学 “二进制与十进制互转”
咱们不用强迫自己手动算复杂的转换(以后写代码时电脑会自动处理),但得懂基本方法,遇到简单情况能反应过来:
(1)二进制转十进制:按权展开求和
举个例子:把二进制 “11001” 转成十进制。
-
第一步:给二进制的每一位标上 “权”(从右往左,从 0 开始数):二进制数字:1(第 4 位)、1(第 3 位)、0(第 2 位)、0(第 1 位)、1(第 0 位)。
-
第二步:算 “每一位数字 × 2 的权次方”,然后把结果加起来: 1 × 2 4 + 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 25 1 \times 2^{4} + 1 \times 2^{3} + 0 \times 2^{2} + 0 \times 2^{1} + 1 \times 2^{0} = 25 1×24+1×23+0×22+0×21+1×20=25。
-
结论:二进制 “11001” 对应的十进制就是 25。
(2)十进制转二进制:除 2 取余,逆序排列
举个例子:把十进制 “53” 转成二进制。
-
第一步:用 53 不断除以 2,把每次的余数记下来(直到商为 0):
-
53 2 = 26...1 \sqrt[2]{53} = 26...1 253=26...1(用 2 除 53 得 26 余 1)
-
26 2 = 13...0 \sqrt[2]{26} = 13...0 226=13...0(再用 2 除 26 得 13 余 0)
-
13 2 = 6...1 \sqrt[2]{13} = 6...1 213=6...1(用 2 除 13 得 6 余 1)
-
6 2 = 3...0 \sqrt[2]{6} = 3...0 26=3...0(用 2 除 6 得 3 余 0)
-
3 2 = 1...1 \sqrt[2]{3} = 1...1 23=1...1(用 2 除 3 得 1 余 1)
-
1 2 = 0...1 \sqrt[2]{1} = 0...1 21=0...1(用 2 除 1 得 0 余 1)
-
-
第二步:把余数从后往前排(逆序):1 1 0 1 0 1
-
结论:十进制 “53” 对应的二进制就是 “110101”。
四、字符编码:让电脑 “读懂” 文字的关键
4.1 文字咋存?靠 “字符编码” 当 “翻译官”
咱们写代码时会用到字母、汉字,比如变量名 “student”、注释 “这是成绩变量”,这些文字电脑咋用 0 和 1 表示呢?靠的是 “字符编码”—— 相当于给每个文字编一个 “数字密码”,电脑存储时存这个密码(再转成二进制),显示时再把密码转成文字,就像 “翻译官” 一样。

4.2 常见的字符编码:重点记 UTF-8
有三种常见的编码,咱们不用深入研究原理,重点记清楚 “为啥编程要选 UTF-8”:
- ASCII 码:最早的编码,只支持英文字母、数字和标点(比如 “A” 对应 65,“a” 对应 97),但完全不支持中文 —— 现在基本只在老系统里用。

-
Unicode:为了解决 “多语言显示问题”,把中文、英文、日文等全世界的文字都编了码(比如 “中” 对应 65533),但缺点是存储时占空间大(一个字符要 2-4 个字节)。
-
UTF-8:最常用的编码!基于 Unicode,但能 “按需分配空间”—— 英文字符用 1 个字节(和 ASCII 码兼容),中文字符用 3 个字节,既省空间又能支持所有语言。
4.3 编程必看:为啥一定要用 UTF-8?
新手写代码常遇到 “乱码” 问题(比如中文注释显示成一堆问号),大多是因为编码没设对。以后不管用 IDEA、VS Code 还是其他编程软件,新建文件或项目时,一定要把编码格式设为 UTF-8—— 这样不管在自己电脑还是别人电脑上运行代码,文字都能正常显示,不会出现乱码。
总结
学完这一节,你只要记住 5 个关键点:
-
电脑只认二进制(0 和 1),所有数据最终都会转成二进制;
-
数据单位按 1024 倍换算,内存临时存、外存长期存,写代码要随时保存;
-
二进制和十进制有固定转换方法,电脑会自动处理,不用手动算复杂数值;
-
文字靠字符编码存储,编程时一定要把编码设为 UTF-8,避免乱码;
-
这些知识是以后处理数据、解决 bug 的基础,不用一次全背会,用到时回头看就行。
