C 语言的比特, 字节和字

比特, 字节, 字

各种数据在内存中即内存条上都是以二进制形式来存储的. 输入计算机的内容要从所输入的形式转化为二进制形式, 将计算机的内容输出也是从二进制形式转化为要输出的形式.

内存条包含很多个元器件, 每个元器件都有两种电压状态, 即 0V 和 5V. 5V 为高电压, 表示通电, 在计算机中用 1 来表示, 0V 是低电压, 表示断电, 在计算机中用 0 来表示. 所以一个元器件有 2 种状态, 即 0 或 1.

通过控制多个元器件各自的通断电状态就得到多个 0, 1 的组合. 例如, 8 个元器件有 28 = 256 种不同的组合, 16 个元器件有 216 = 65536 种不同的组合.

可以给每一种组合赋予特定的含义, 例如规定组合 1101000 表示字符 ‘你’, 规定组合 01010101 表示字符 ‘好’, 则这两个组合合起来 110100001010101 就表示 “你好”.

一般情况下并不一个一个地使用元器件, 而是将 8 个元器件作为一组, 看做一个单位, 即使某个需要表示的指令需要的元器件少于 8 个, 也用 8 个表示, 多余的元器件则空置不用. 例如数字1 表示为 00000001.

1 个元器件称为 1 比特或 1 位, 1 位存储数字 1 或 0, 位是计算机最小的存储单位, 是计算机内存的基本构建块.

字节的定义是 8 位, 即 8 个元器件称为 1 字节, 有 28 = 256 种不同的组合, 即一个字节可以表示 [0, 255] 之间的整数.

但 C 语言对字节定义有所不同, C 语言规定一个字节是 char 类型占用的位数. 一般而言, char 类型占用 8 位, 即一个字节是 8 位, 但如果用到基本字符集或其他大的字符集, 也可以是 16 位或更多, 但一定是 8 的整数倍. 因此, char 类型始终占用一个字节, 一般是 8 位, 也可能是更多位, 但一定是 8 的整数倍.

内存编址以字节为单位, 一个字节对应一个编址.

单位换算:

  • 8×1024 个元器件是 1024 Byte, 简写为 1 KB;

  • 8×1024×1024 个元器件是 1024 KB, 简写为 1 MB;

  • 8×1024×1024×1024 个元器件是 1024 MB, 简写为 1 GB.

  • 1Byte = 8 Bit

  • 1KB = 1024Byte = 210 Byte

  • 1MB = 1024KB = 220 Byte

  • 1GB = 1024MB = 230 Byte

  • 1TB = 1024GB = 240 Byte

  • 1PB = 1024TB = 250 Byte

  • 1EB = 1024PB = 260 Byte

字是设计计算机时给定的自然存储单位, 如 64 位计算机中一个字是 64 位. 字长越大数据转移就越快, 允许访问的内存也更多.

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值