一个格子多大?地址怎么算?里面存的都是什么?彻底讲清楚
1 Byte = 8 bit
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
地址就是每个格子的"门牌号"。
32位系统最多有 2³² = 4,294,967,296 个地址
= 4GB 内存空间
每个地址对应 1 Byte
• 一个 ASCII 字符(如 'A')
• 一个 0-255 的整数
• 8 个布尔值(true/false)
• 指令的一部分(如 MOV 操作码)
MOV ADD SUB JMP 等
这些是 CPU 能直接执行的二进制指令。
比如 MOV EAX, EBX 会被编译成若干字节。
程序运行时,CPU 从内存取出这些指令并执行。
0x3F 1024 0xA5 等
程序中的变量值、数组元素、结构体字段。
比如 int x = 100; 会把 100 存入某地址。
数据可以被读取、修改、传递。
R0 R1 FLG PTR 等
这些是程序员/调试器用的符号名。
实际运行时内存里存的是二进制值,
但可视化时我们用这些标签帮助理解。
HEAP STK CODE DATA 等
表示这块内存的用途:
• HEAP = 堆(动态分配)
• STK = 栈(局部变量)
• CODE = 代码段
• DATA = 数据段
INT CHR FLT STR 等
表示数据的类型:
• INT = 整数
• CHR = 字符
• FLT = 浮点数
• STR = 字符串
NUL EOF ERR OK 等
特殊的控制值或状态码:
• NUL = 空指针/空字符
• EOF = 文件结束
• ERR = 错误状态
• OK = 成功状态
行号 × 8 + 列号。
实际计算机中,地址计算更复杂,涉及 Bank、Row、Column 等多级解码。
1. 基本单位:内存最小可寻址单位是 1 Byte(字节) = 8 bit
2. 地址含义:每个地址对应一个 Byte,地址从 0 开始连续编号
3. 存储内容:内存是通用的,可以存指令、数据、指针、字符串等任何二进制信息
4. 多字节数据:int(4字节)、float(4字节)、double(8字节)等需要占用连续多个地址
5. 类型是概念:内存本身不知道类型,类型是程序/CPU解释数据的方式