计算机中的01
进制:
进制就是进位计数制,是⼈为定义的⼀种计数⽅法。⼈类最熟悉的进制应该就是⼗进制。我相信⼏乎所有正常⼈都是⾮常熟悉⼗进制的,那么⼈类为什么最熟悉⼗进制呢?⼀种最为可靠的理由是⼈类有⼗根⼿指,⼗根脚趾。最早的⼈类是通过掰⼿指计数的,久⽽久之,⼈类天⽣的容易理解⼗进制。
什么是⼗进制呢?简单说就是由0~9⼗个数字组成的⼀套逢⼗进位的计数⽅法。从这个概念出发,我们可以推导出其他进制的定义。
⽐如⼆进制就是由0~1两个数字组成的⼀套逢⼆进位的计数⽅法;⼋进制就是由0~7两个数字组成的⼀套逢⼋进位的计数⽅法。到了这⾥,有⼈就会疑问了,那⼗六进制呢?0~9⼗个数字显然不够⽤啊?
在⼗六进制中,0~9⼗个数字确实不够⽤,于是⽼外就打开脑洞,借来六个英⽂字母,分别⽤a、b、c、d、e、f来表⽰
10、11、12、13、14、15,那么⼗六进制的定义就可以表述为,由0~f⼗六个符号组成的⼀套逢⼗六进位的计数⽅法⼆进制:
在计算机中,⼀切数据都是以⼆进制的⽅式储存。与⼈类更亲和的是⼗进制,那么计算机为什么要使⽤⼆进制呢?
实现简单。计算机的芯⽚实际上就是由⼀堆电路组成,电路通常只有两个状态,接通与断开,这两种状态正好可以
⽤“1”和“0”表⽰,这样在设计芯⽚的逻辑电路时就会变得⾮常简单。
适合逻辑运算。⼆进制只有两个数,正好与数理逻辑中的真和假吻合。
易于转换。⼆进制与⼗进制数易于互相转换。
进制⽐较
可以看到,与⼗进制相⽐,⼆进制的⼀个显著特点就是位数很长。由于⼆进制逢⼆进⼀的特点,导致不
断向前进位,就使得位数变长。例如,⼗进制的数字1在⼆进制中的写法也是1,⽽⼗进制的2在⼆进制的写法中则是10,因为⼆进制逢⼆要进位,就如同⼗进制逢⼗进位⼀样,因此第⼀位向前进⼀位,⾃⼰就变成0,前⾯⼀位就变成1,由此变成两位数10。
这⾥建议⼤家在学习⼆进制的时候,千万不要带有⼗进制的数感,⽽应当从本质上去理解进制。⼆进制中的0和1两个数也千万不要把它们看做是数字,要把它们看做两个有顺序的符号,我们把0、1换成0、a两个符号去看⼆进制是不是更好理解呢?这就好像⼀个计数游戏,有两个有顺序的符号0、a,每当超过a的时候就必须向前进⼀位,⾃⼰就变成0。Ok,现在假设我们只有两根⼿指,让我们模仿⼀下远古⼈类祖先来记录下今天的采集成果。假设我们采集了⼀堆野果,现在我们就数⼀数,在地上画符号来记录⼀下,就好像我们⼩时候玩的画正字游戏:
第⼀颗,我们记作:a
第⼆颗,擦写⼀下:a0
第三颗,再擦写⼀下:aa
第四颗,再擦写,依次向前进位:a00
第五颗,再擦写:a0a
第六颗,再擦写:aa0
……
最后,我们画出来的符号是:a0a0
那么请⼤家思考⼀下,我们今天采集了⼏颗野果呢,也就是说把这个符号换算成⼗进制是⼏?如果你能看出结果,那么请相信,你已经从本质上理解了⼆进制。
计算机中的⼆进制:
在早期的计算机中,由于硬件的限制,CPU只能处理8位⼆进制数,例如1971年英特尔推出的8008芯⽚,这样的CPU就被称为8位芯⽚。随着硬件的不断发展,先后出现了16位芯⽚,32位芯⽚,直到现在的64位芯⽚,计算机能处理的⼆进制位数不断增加,CPU运算能⼒也越来越强。 对于⼤多数⼈来说,我认为学习⼆进制与⼗进制的数学换算⽅法是没有意义的事情,现在让我们打开Windows上的计算器去换算,【Window键】+ 【r】打开运⾏窗⼝,然后输⼊calc确定,打开计算器,在计算器【查看】菜单中选择【程序员】即可进⼊程序员型计算器(Window键是键盘左下⾓带有⼀个窗⼝图标的键)
calc
选择⼆进制,输⼊8个1,然后选择⼗进制,即可将⼀个8位⼆进制转换为⼗进制数,可以看到⼆进制11111111换算成⼗进制是255,这表明8位CPU只能处理0~255之间的数字。⼤家可以依次算⼀算16位、32位以及64位CPU的数据处理能⼒。
实际上64位⼆进制换算成⼗进制是⼀个⾮常⼤的天⽂数字,计算器也⽆法换算,这⾥还是说⼀说数学公式,⼆进制转⼗进制的⽅法是将每⼀位⼆进制上的数字乘以2的n-1次⽅,然后对所有数求和,n表⽰的是当前数字在⼆进制中是第⼏位。
例如⼆进制数1011转⼗进制
结果为11。⼤家依此可以计算出64位1换算成⼗进制是⼏。我这⾥还是给出⼀个64位⼆进制数的⼗进制范围:
0~18446744073709551615
最后说明⼀下,实际在计算机中,⼆进制的⾸位是符号位,例如8位⼆进制,⾸位表⽰的是符号位,0表⽰正数,1表⽰负数,后⾯7位才⽤来表⽰实际值。例如00000111表⽰7,10000111表⽰-7
计算机中的数据存储单位:
2进制转十进制在线计算器
说了许多⼆进制的知识,⼤家有没有头晕呢?现在让我说⼀点轻松的,⽐如硬盘的容量⼤⼩是怎么算出来的呢?
我们前⾯说了,计算机中的⼀切数据都是⼆进制,那么硬盘⾥⾯存的当然是⼆进制了。⾸先要知道,数
据最⼩的容量单位是字节,英⽂单词是Byte,单位缩写是B,⽽1B⼤⼩对应是⼀个8位⼆进制。也就是说⼆进制11111111存在硬盘中的⼤⼩就是1B,换算成⼗进制,也就是说整数255存到硬盘的⼤⼩是1B,⼀个16位的⼆进制数储存的⼤⼩就是2B咯。
除了最⼩的字节单位,还有很多其他⼤⼩的单位
1KB(Kilobyte,千字节) = 1024B
1MB(Megabyte,兆字节) = 1024KB
1GB(Gigabyte,吉字节) = 1024MB
1TB(Terabyte,太字节)  = 1024GB
1PB(Petabyte,拍字节) = 1024TB
我们⽣活中最常接触的是M、G这两个单位了,实际上它们的完整写法是MB和GB。⼤家如果有兴趣,也可以算⼀算1MB 可以存多少个32位的⼆进制整数。
今天的理论知识先学到这⾥,我想⼤家应该已经有点明⽩电脑系统为什么有32位和64位之分了吧,后⾯的章节,我们会更深⼊的学习和理解这点,到时候⼤家就知道两者有什么区别了。
进制附表

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。