前言
入职已经一年多了,对于字节、位、流的理解还是很模糊。所以在这里要弄清楚这些东西。
目录
- 进制的理解
- 位的理解
- 字节的理解
- 编码的理解
进制的理解
进位计数制,是人为定义的带进位的计数方法,对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位。
计算机中所有的数据都被存储为一连串的二进制信息(0和1)。为了更加方便的表达计算机的存储的数字,计算机使用人员使用十六进制来记录。便于书写、记录。
常用的进制
二进制 | 八进制 | 十进制 | 十六进制 |
---|---|---|---|
01010011 | 123 | 53 | 83 |
以上四个等同,8位二进制数字可以转换成2位十六进制数字。这个要记住。
位的理解(bit)
位:”位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。
bit表示字,一个二进制位,byte表示字节1字节=8bit(字)
字节的理解(Byte)
字节:8个二进制位构成1个”字节(Byte)”,它是存储空间的基本计量单位。
1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。
字节用来存储空间的基本计量单位,就和货币中的分一样。字节一般用来做换算
1B = 8bit、1KB=1024B 、1MB=1024KB
编码的理解
编码是信息从一种形式或格式转换为另一种形式的过程,在计算机硬件中,编码(coding)是指代码来表示各组数据资料。通俗的讲,计算机中的二进制要变成文字、信息就要通过编码过程。
编码的种类
- 字符编码
- 文字编码
- 语义编码
- 电子编码
- PCM编码
- 神经编码
- 记忆编码
- 加密
- 译码
常用的编码
从byte到char 必须有编码,常用的有ASCII、ISO8859-1、GB2312、GBK、UTF-8、UTF-16等
ASCII码
共有128个,用一个字节的低7位表示。是美国信息交换标准代码,基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
ISO8859-1
通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
GB2312
标准中文字符集。
UTF-8
UNICODE 的一种变长字符编码,即 RFC 3629。简单的说——大字符集。可以解决多种语言文本显示问题,从而实现应用国际化和本地化。
GBK
全称《汉字内码扩展规范》
Unicode
(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
随着计算机的流行,使用计算机的人越来越多,不仅限于美国,整个世界都在使用,这个时候ASCII编码的问题就凸现出来了。ASCII编码只占用1个字节,最多只能表示256个字符,我大中华区10万汉字怎么表示,日语韩语拉丁语怎么表示?所以90年代又制定了一套新的规范,将全世界范围内的字符统一使用一种方式在计算机中表示,这就是Unicode编码(Unique Code),也称统一码、万国码。Unicode 是一个很大的集合,现在的规模可以容纳100多万个符号,每个符号的对应的二进制都不一样。Unicode 规定可以使用多个字节表示一个字符,例如 a 的编码为 01100001,一个字节就够了,”好“的编码为 01011001 01111101,需要两个字节。为了兼容ASCII,Unicode 规定前0~127个字符与ASCII是一样的,不一样的只是128~255的这一段。
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 |
---|---|---|---|---|---|---|---|
0-25 | A-Z | 26-51 | a-z | 52-61 | 0-9 | 62-63 | +/ |
base64常用于在HTTP环境下传递较长的标识信息