1. 主页 > 生活经验

2的3次方等于多少(2的负三次方等于多少怎么算)

引言

前面的小短文我们讲了二进制,二进制的表达方式很有限,单个载体只能表达出两种信息。在这里,这种单个载体称之为比特位,比特位即bit,是计算机最小的存储单位,以0或1来表示比特位的值,对应于实际世界一个晶体管。但是众人拾柴火焰高,人多力量大,我们可以使用多个载体来传达信息。

一个晶体管只能表达0 和 1这两种状态,但是两个晶体管可以表达4 (2的2次方 = 4) 种状态,分别为:00、01、10、11。而三个晶体管可以表示8种状态(2的3次方 = 8)。所以比特位的数目越多,我们可以表达的状态和信息量就越多。

字节、字、双字

一般来说,我们把8个比特位合在一起,可以理解为实际的8个晶体管称为一个字节,英文单词为Byte。把两个字节合在一起叫做字,英文单词为Word,如果两个字合在一起,就叫做双字,Double Word。对应关系如下:

1字节 = 8比特

1字 = 2字节 = 16比特

双字 = 2字 = 4字节 = 32比特

此外,就像我们有千米,千克,一样

1 KB = 1000 Bytes

1 MB = 1000 KB

1 GB = 1000 MB

1 TB = 1000 GB

这里我用了1000作为换算比值,这是因为商家们在卖给我们产品的时候,比如宣称U盘有32个G,但实际上我们插到电脑里会发现只有29个G作业,除了一些必要的文件占用之外,还有一个原因是因为商家的换算比值与计算机内部的换算比值不同,计算机内部的换算比值为1024,即1 KB = 1024 Bytes。至于为什么商家为什么要这样,这可以说是一个商业噱头,宣传的时候数字大点可能消费者更喜欢。因此,换算比值可以是1024也可以是1000。

如何表示数字

我们现在用的是10进制,我们使用0-9这10个数字再加上很多的位数可以表达出无穷无尽的数字。为什么158 这是数是意思是一百五十八,因为这是由8个1,5个10,1个100相加起来的数,我们会把每一位的数字乘以一个特殊的基数 这个基数会随着位置的变化而变化,从右往左开始,第一位的基数是1,第二位的基数10,它是第一位基数的10倍,第三位是100,它是第二位基数的10倍,这很简单。

158 = 1 * 10^2 5 * 10^1 8 * 1

158 = 100 50 8 = 158

同样的,二进制110其实是10进制中的6

110 = 1 * 2^2 1 * 2^1 0 * 1

110 = 4 2 0 = 6

在这里,我要提一下16进制16进制是一个很重要的进制。16进制表达二进制数起来会很简短 例如二进制数11110011表示为16进制数就是0x0F3。16进制的每一位有15种表示状态,分别为0-9再加上英文字母A-F,以表示10到15.,并且在书写16进制数时,最好在前面加上0x。如果数字开头为字母,则需要加上一个0,以防混淆,例如0xF要写成0x0F。同样的0x0F表示10进制的15:

0x0F = 0 * 16 15 * 1 = 15

正负数表示

如果需要区分正负数,那么就需要占用额外的比特位,如果不考虑正负,那么一个字节可以表示0到255,如果要表示正负的话,我们会选择从左到右的第一位作为正负标记,一般规定,1代表负数,0代表正数,例如:

10000001 的含义为 -1

00000001 的含义为 1

这样,所能表示的数的范围就成为了-128到127。

浮点数表示

浮点数包含的信息很多,根据IEEE754标准,单精度我们需要32位来存储信息

双精度需要64位来存储信息。

这里举一个例子,625.9可以用科学计数法表示为

0.6259 * 10^3

在这里,有三个关键的参数

1、 符号位(Sign) : 0代表正,1代表为负

2、指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储

3、尾数部分(Mantissa):尾数部分

具体如下图

浮点数表示法

如何表示文字

其实表示文字和表示数字差不多。直接上图,来点感性认识:

这是一个简单的字符打印小程序

这是一段很小的c程序,在这段程序里,97这个数字如果输出方式为数字,那它就是数字97,如果输出方式为字符,那么它就是英文小写字母a, 98这个数字代表着小写字母 b ,在这段程序的眼中,字符和数字没什么不同,本质都还是数字,这种人为规定就将字母和数字联系了起来。

由于早期的计算机基本都是在欧美或者是其他国家发明的,对于以英语为主的国家,所需要的字符量很少,阿拉伯数字,26个英文字母还有若干个标点符号就可以满足基本的日常需要,这样,把这种对应关系固定下来,就有了ASCII码表。

美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据。起始于50年代后期,在1967年定案。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,它已被国际标准化组织(International Organization for Standardization, ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母。

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

——百度百科

ASCII码对照表

中国汉字的存储

由于我们中国的汉字很特殊,每一个字都是唯一的,一般不能由其他字组合起来,不像英文单词是由26个字母拼合起来的。因此,我们需要足够多的数字来一一对应汉字,因此一般汉字的存储需要两个字节,或者说一个字,也就是16比特,

16比特可以存储2^16次方 即 65536种信息。并且我们有自己的编码规范。

《信息交换用汉字编码字符集》是由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB 2312—1980。1995年又颁布了《汉字编码扩展规范》(GBK)。GBK与GB 2312—1980国家标准所对应的内码标准兼容,同时在字汇一级支持ISO/IEC10646—1和GB 13000—1的全部中、日、韩(CJK)汉字,共计20902字。

随着要支持的汉字越来越多,还有适应社会的不断发展,我们国家的编码规范也在不断地更新完善。

万国码

随着世界各国的经济文化交流越来越紧密,各国国家不能固步自封,迫切地需要一种统一的计算机字符编码,这时,万国码(Unicode)出现了。

万国码,万国码,通俗的讲就是全世界都通用的编码,它为了全世界通用,采用了一种非常简单的方法,就是将全世界所有的文字,符号都存放在一起。

Unicode 是有两个字节、四字节之区分,UCS-4用4个字节编码,可表示2的32次方,即4294967296种字符。

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字节编码。

资料来源

特此鸣谢 The Crash Course

本篇有图片来源于网络,如有侵权,立即删除。


由于本篇涉及到的内容有些宽泛,因此只能给大家一个简单的感性认识,并没有涉及到图片的存储,因此下一篇会补上。如果读者想深入探讨,可以上网搜索相关资料,如果错误,望批评指正,不胜感激。


本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com

本文链接:https://jinnalai.com/jingyan/33982.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息