"字符"、"字节"、"二进制位" 之间的关系

之前一直对这个问题一知半解,导致最近的学习中很多问题处理的模棱两可,于是终于忍无可忍,决定把这个问题系统的处理一遍。 ψ(*`ー´)ψ

1 字节 = 8 二进制位

这个毋庸置疑,在每种情况下都是成立的。(字节就是所谓的 ‘KB’ 中的那个 ‘B’)

1 字符 = ?字节

“字符” 和 “字节” 对应的关系就没那么简单了,这取决于程序使用了什么样的 “编码方式”。
用我们最熟悉的记事本做实验,先建一个空的 “ANSI” 编码格式的 .txt 文件:
在这里插入图片描述可以发现,它的原本大小为 0 字节
在这里插入图片描述分别填写一个英文和一个中文,观察:
在这里插入图片描述在这里插入图片描述得出结论:ANSI 编码方式,英文(包含英文特殊符号) = 1字节 、 中文(包含中文特殊符号) = 2字节

同理,实验 unicode 编码方式:
在这里插入图片描述你会发现空的 .txt 文件在 unicode 编码方式下竟然有 2 字节的大小 !(这里不解释了就,否则就跑题了)
在这里插入图片描述继续在 unicode 编码的 .txt 文件中测试英文和中文:
在这里插入图片描述
在这里插入图片描述结论是 unicode 编码下,英文和中文都占 2 个字节。

同理实验 utf-8 ,初始大小 3 字节,英文占 1 字节,中文占 3 字节(这里就不截图了)

总结一下:

编码英文中文
ANSI(ASCII 的扩展)1字节2字节
UTF-81字节3字节
Unicode2字节2字节
GBK1字节2字节

网上的老哥们说字符对应的字节数和机器长度也有关系,这里先贴出来,有大神知道的话希望帮我解释解释。
在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值