目录:

一、8位、32位、64位二进制

二、二进制表示正数、负数

三、二进制表示浮点数

四、二进制表示字母、字符、文字(ASCII码)

五、Unicode统一所有编码的标准

六、其他标准格式


一、8位、32位、64位二进制

二进制数只能表示0或1,如果要表示更多的信息,只需要添加更多的位数就行

相比于十进制,二进制的区别只是基为2,每一位是前一位的两倍

01c791365d2c9e738b0acb81f91c31d2.png

而对二进制进行加减法,只需注意是逢2进1

二进制中,一个1或0称为一个位(bit)

对于8位二进制数,最小为0,最大为255

由于8位二进制数太过常见,因此将其称为字节(byte)

32位和64位操作系统,指的是操作系统一块块处理数据的,而每块大小是32位或者64位


二、二进制表示正数、负数

然而并非所有数字都是正数,所以我们需要方法来表示正数和负数

大部分计算机使用第一位表示正负:1为负、0为正。然后使用剩下的31位来表示数字


三、二进制表示浮点数

除了负数和正数,计算机也要处理非整数,这些称为浮点数(Floating Point Numbers)

因为小数点可以在数字间浮动,有好几种表示浮点数的方法,最常见的是IEEE 754标准

它使用类似科学计数法的方法来存十进制数,比如625.9可以写成

,其中0.6259称为
有效位数(Significand),3称为指数(Exponent)。在32位浮点数中,第一位表示数字的正负,接下来的8位存储指数,剩下的23位存储有效位数

c19c7bdc0ea78676780940c4cfc1c9cf.png

四、二进制表示字母、字符、文字(ASCII码)

同时,计算机可以使用二进制数来表示字母,而最直接的方法是字母编号

1963年发明了ASCII(美国信息交换标准代码),当时为7位二进制数,能够存放128个不同的值,可以用来表示大小写字母、数字、标点符号等等,并且其中存储了特殊字符,比如换行符、制表符等等。

但是ASCII有个限制,它是为英语设计的。但是幸运的是一个字节有8位(操作系统是一块一块处理数据的,一块几个字节)。之前的ASCII只编码了0-127中表示的字符,而128-255的字符是空着的,这些值可以给每个国家保留使用

美国,这些额外的数字主要用于编码附加符号

俄罗斯,他们用这些额外的字符表示西里尔字符等等。

但是这种方法也存在缺点:

1. 如果在土耳其电脑上打开拉脱维亚语写的电子邮件,就会出现乱码。

2. 像中文和日语这种包含数千字符的语言,根本无法使用8位二进制数来表示所有字符

为了解决这个问题,每个国家发明了多字节编码方案,可以使用多个字节来编码字符,但各个国建之间的编码方案不互相兼容


五、Unicode统一所有编码的标准

由此出现了Unicode来统一所有编码的标准,设计于1992年,解决了不同国家不同标准的问题。最常见的Unicode是16位的,有超过一百万个位置来编码字符,编码所有语言的所有字符都足够了,并且还有位置放数学符号、Emoji等等


六、其他标准格式

类似于ASCII用二进制来表示字母。其他格式,比如MP3格式GIF格式使用二进制编码声音/颜色,用来表示照片、电影、音乐等等。归根结底,这些标准格式都是一长串二进制数而已。


已获授权:

感谢原创作者: @深度人工智障

笔记属于二次更改,并增添了一些内容


原创出处:

原创作者: @深度人工智障

原创出处:知乎文章

原创链接:https://zhuanlan.zhihu.com/p/103505351


帮忙点个赞,谢谢!

整理不易,给点鼓励,谢谢!

更多的《计算机科学速成课》,关注专栏~

PS:请关注专栏,不要关注我!
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐