DukeDuke
主页
关于我们
主页
关于我们
  • Java

    • Java基础

      • 内存与磁盘
      • 进制转换
      • 数据存储
      • Java基本数据类型
      • HashMap
      • Java四大引用
    • JVM

      • 认识JVM
      • JVM类加载器
      • 运行时数据区
      • 执行引擎
      • 本地方法接口
      • 本地方法库
      • JVM垃圾回收
      • JVM性能监控
      • JVM调优
    • 设计模式
      • 单例模式
      • 工厂模式
      • 策略模式
      • 适配器模式
      • 建造者模式
      • 原型模式
      • 装饰器模式
      • 代理模式
      • 外观模式
      • 享元模式
      • 组合模式
      • 桥接模式
    • Java多线程

      • Java 线程基础详解
      • Java 线程池详解
      • Java ThreadLocal 详解
      • Java volatile 详解
      • Java 线程间通信详解
      • Java 线程安全详解
      • Java 线程调度详解
      • Java 线程优先级详解

      • Java 线程中断详解
      • Java 线程死锁详解
    • Java反射
    • Java 面试题

      • Java 基础概念面试题
      • Java 面向对象编程面试题
      • Java 集合框架面试题
      • Java 多线程与并发面试题
      • JVM 与内存管理面试题
      • Java I/O 与 NIO 面试题
      • Java 异常处理面试题
      • Java 反射与注解面试题
      • Java Spring 框架面试题
      • Java 数据库与 JDBC 面试题
      • Java 性能优化面试题
      • Java 实际项目经验面试题
      • Java 高级特性面试题
      • Java 面试准备建议

计算机中的数据存储

1. 数据存储的基本单位

1.1 位(Bit)

**位(Bit)**是信息的最小单位,是 Binary Digit(二进制数字)的缩写。

位的基本特性

  • 物理本质:位只能表示两种状态,对应计算机硬件的两种物理状态
    • 0:低电平、关闭、假(false)
    • 1:高电平、开启、真(true)
  • 信息容量:1 个位可以表示 2¹ = 2 种不同的值(0 或 1)
  • 基础地位:是计算机存储和处理数据的最小不可分割单位

1.2 字节(Byte)

**字节(Byte)**是计算机中最基本的数据存储单位,由 8 个位组成。

可视化理解:

1 字节 = 8 个位

位的位置:  7   6   5   4   3   2   1   0
            ↓   ↓   ↓   ↓   ↓   ↓   ↓   ↓
位的值:    1   1   1   1   1   1   1   1
            │   │   │   │   │   │   │   │
            └───┴───┴───┴───┴───┴───┴───┘
                   8 个独立的位

这是 1 字节能表示的最大无符号值。

字节的基本特性

  • 组成:1 字节 = 8 位
  • 信息容量:1 字节可以表示 2⁸ = 256 种不同的值
  • 取值范围:
    • 无符号字节:0 到 255(2⁸ - 1)
    • 有符号字节:-128 到 127(使用补码表示)
  • 标准地位:是大多数编程语言和操作系统的基本数据单位

字节的二进制表示

一个字节的 8 个位从右到左编号为 0-7(最低位到最高位):

位编号:  7  6  5  4  3  2  1  0
位值:    1  1  1  1  1  1  1  1
位权:  128 64 32 16  8  4  2  1

示例:字节 11111111₂ 的十进制值计算:

1×128 + 1×64 + 1×32 + 1×16 + 1×8 + 1×4 + 1×2 + 1×1
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255₁₀

字节的常见用途

  • 字符编码:ASCII 码中,每个字符占用 1 字节
  • 颜色值:RGB 颜色值中,每个颜色分量占用 1 字节(0-255)
  • 小整数:存储 0-255 范围内的整数
  • 数据块:文件读写的基本单位

字节的十六进制表示

由于 1 字节 = 8 位,而 1 位十六进制 = 4 位二进制,所以:

  • 1 字节 = 2 位十六进制
  • 例如:01001011₂ = 4B₁₆ = 75₁₀

1.3 存储单位换算

单位换算关系二进制表示说明
1 B1 字节 = 8 位2³ 位字节(Byte)
1 KB1024 字节 = 2¹⁰ 字节2¹³ 位千字节(Kilobyte)
1 MB1024 KB = 2²⁰ 字节2²³ 位兆字节(Megabyte)
1 GB1024 MB = 2³⁰ 字节2³³ 位吉字节(Gigabyte)
1 TB1024 GB = 2⁴⁰ 字节2⁴³ 位太字节(Terabyte)
1 PB1024 TB = 2⁵⁰ 字节2⁵³ 位拍字节(Petabyte)

注意:

  • 计算机使用 1024(2¹⁰) 作为换算基数,而不是 1000
  • 这是因为计算机使用二进制系统,2¹⁰ = 1024 是 2 的整数次幂
  • 存储设备厂商可能使用 1000 作为换算基数(如 1 KB = 1000 字节),这会导致实际容量与标称容量有差异

2. 总结

2.1 核心要点

  1. 位(Bit)是信息的最小单位:只能表示 0 或 1 两种状态
  2. 字节(Byte)是基本存储单位:1 字节 = 8 位,可以表示 256 种不同的值
  3. 二进制是位的自然表示:每一位对应一个物理位
  4. 十六进制是字节的简化表示:1 字节 = 2 位十六进制,便于人类阅读
  5. 存储单位使用 2 的幂次:1024 = 2¹⁰ 作为换算基数

2.2 关键关系

  • 1 位 = 1 位二进制 = 2 种状态
  • 1 字节 = 8 位 = 2 位十六进制 = 256 种状态
  • 二进制 ↔ 十六进制:每 4 位二进制 = 1 位十六进制
  • 存储容量:使用 1024(2¹⁰)作为换算基数

理解位、字节和进制之间的关系对于:

  • 深入理解计算机数据存储原理
  • 进行底层编程和性能优化
  • 调试内存相关问题
  • 理解数据编码和传输

至关重要!

最近更新:: 2025/12/29 11:07
Contributors: Duke
Prev
进制转换
Next
Java基本数据类型