美文网首页
1个字节为什么是8位?

1个字节为什么是8位?

作者: BigDipper | 来源:发表于2020-10-20 13:15 被阅读0次

1个字节有8位,是跟ASCII编码有关。

众所周知,计算机只能识别0和1,除此之外的,它都不认识。而我们平常所认识的a、b、c这些字符,要想让计算机认识,就得有个将字符转换成一连串用0和1表示的组合的过程,这样到了计算机那儿,它才能认出来,这个过程就是编码,把人类认识的字符编码成计算机认识的字符。

可是话说回来,编码是个很灵活的事儿,比如Tom可以把a字符编码成001的数字组合,Jerry可以把a字符编码成110的数字组合,反正到了计算机那儿,你就按我给的编码规则,把数字组合再转换回字符不就行了,这种做法本身没有问题,只不过产生的后果就是混乱,无比的混乱,各种编码规则,到底听谁的?

因此,为了避免混乱,为了避免“公说公有理,婆说婆有理”,不能说很久以前吧,也得说在很早以前,美国出了一个编码标准,名字叫ASCII编码(全称American Standard Code for information Interchange 美国信息交换标准码),它把所有字符包括单词,标点符号全部都囊括进来了,总共是128(0~127)个字符,这足够美国人用了,而2^7=128,即7个0和1的组合,同时为了保险,万一不够用呢,就将8个0和1的组合存储在一个字节中,这就是1个字节(1B)用8个二进制位(8b)表示的由来。比如:前面提到过的字符a,它用ASCII编码后的二进制表示方法就是01100001。

补充说明:
既然1个字节是8位,可见位(bit)是存储数据的最小单位,字节(Byte)是计算机存储数据的基本单位,可字节却是硬件所能访问的最小单位。那么,为什么硬件所能访问的最小单位是字节,而不是位呢?因为硬件是通过地址总线访问内存的,而地址总线是以字节为单位进行分配的,因此地址总线只能精确到字节。那如何控制它的某一位呢?那就需要通过位运算符,即通过软件的方式来控制。

相关文章

  • 可爱的字节码&修改

    1.为什么要修改字节码 字节码是java多平台运行的根本原因,程序运行的状态和结果都由字节码决定。所以控制了字节码...

  • 💻 一个汉字多个字节是什么意思

    在计算机系统中,一个汉字为什么用多个字节表示 1.什么是字节? 字节(byte)是计算机存储基本单位1byte =...

  • 详解 JVM 字节码(2)

    什么是字节码,为什么需要字节码编译 JVM 编译成机器码, 我们看一看 Java 编译过程 java 源码 编译为...

  • 小甲鱼笔记#一个关于指针所占空间的问题

    输出为: 既然指针所占内存空间为4个字节,为什么地址相差8个字节呢?

  • iOS 内存分配原理

    在64的系统中定义一个NSObject所占的内存是多少呢?答案是:16个字节为什么的是16个字节呢?因为NSObj...

  • cpu 字节序

    为什么会有字节序这一说法 对于单字节处理器不存在字节序,对于大于1个字节的位数的CPU,其寄存器的宽度也大于1个字...

  • 26.文本函数:MID、MIDB、LEFT、RIGHT等2018

    一、字符与字节 1、字节 字节(Byte): 字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。 字节是计...

  • 补码问题

    为什么一个字节的存储范围是-128-127或者0到255呢。 分析:1字节8个位,0000 0000 - 1111...

  • Android中的序列化

    为什么需要序列化? 在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,...

  • read()方法我知道是读一个字节,如果用while循环读取的话

    read()方法我知道是读一个字节,如果用while循环读取的话,为什么他第二次循环的时候就自动read后面的字节...

网友评论

      本文标题:1个字节为什么是8位?

      本文链接:https://www.haomeiwen.com/subject/eqhdmktx.html