前面我们讲了常量的分类,在常量中有一类是整数常量,其值在计算机中时如何表示的呢?为什么会说计算机中的数据都是由二进制表示的呢?除了二进制还可以用什么表示呢?在本节中我们会知晓什么是进制以及二进制的简化及换算。
本章目录:
1.进制的概念
2.二进制的由来
3.二进制的简化(八进制、十六进制)
4.进制的换算
定义
是一种进位方式,x进制,表示逢x进一
计算机的电子元件有两种状态:开、关
那么我们在表示数据的时候也是用开关的状态来表示的,如图:
我们日常所用到的数据是非常多的,如:英文字母、数字、标点符号,这时仅仅这两种状态是无法表示的。这时国际化标准组织就规定。用8个这样的信号来表示。这8个信号组成一个数据,如图。这个数据的单位叫做:字节。
后来,我们就通过数字1,0分别表示开和关。
这时候我们把上面的数据用1,0改进
由1,0组成的数据就是二进制数据。
1byte = 8bit(位)
1k = 1024byte
1m = 1024k
1g = 1024m
1t = 1024g
简化
用二进制表示时,如果数据过多,表示时就会显得冗长,这时,我们可以简化一下。
方式
简化成八进制
从右边到左边,每***三位***为一组,左边不够的补0,从图中的表示分别是:0(补的0)10、111、010,然后计算出对应的十进制数值,最后,在把每个十进制数据组合起来,就是一个八进制数据。
简化成十进制
从右边到左边,每***四位***为一组,左边不够的补0,从图中的表示分别是:1011、1010,计算出对应的十进制数值,然后在把每个十进制数据组合起来,就是一个十进制数据。
规则:进制越大,表示形式越短。进制转换
在了解计算机数据是用二进制的形式表示的,那么除了是二进制外其他表示是不是就没有了吗?
数据的表现形式
二进制:由0,1组成,以0b开头八进制:由0,1,2…7组成,以0开头十进制:由0,1,2…9组成,默认数都是十进制十六进制:由0,1,2…9,a,b,c,d,e,g,f组成,以ox开头转换规则
任意进制到十进制的转换
位权展开乘法:从十进制到十进制推出任意进制到十进制
首先我们要明白几个概念:
系数:每一位上的数据值本省就是系数
基数:x进制转换成十进制,基数就是x
权:我们针对每一个位上的数据进行编号,从右往左,并且编号从0开始,这 个编号就是该位上数据的权值。
最终的结果值=每一个位上的(系数*基数^权次幂)之和
例如:12345=10000+2000+300+40+5
=1×104+2×103+3×102+4×101+5×10^0
=10000+2000+300+40+5
=12345
十进制到任意进制
位权展开除法:从十进制到十进制推出十进制到任意进制
规则:除基取余,直到商为0,余数反转
例如:十进制12345如何转换到十进制12345呢?
如图是对其运用位权展开法来做
二进制到十进制/十进制到二进制的快速转换
利用8421码(bcd编码的一种)
一位对应的是:128、64、32、16、8、4、2、1
例如:0b10010011 =128+16+2+1=147
100 =64+32+4,因此二进制表示为0b1100100
二进制到八进制/十六进制的快速转换
二进制到十进制,十进制到八进制/十六进制
利用本章节中二进制的简化来做(拆分组合法)
转八进制:
0b0101010拆分成000、101、010结果是0、5、2
八进制结果是:052
我们来验证一下:十进制为:32+8+2=42
再转八进制:42/8=5 2
5/8=0 5
最终结果是052,验证正确
转十六进制:
拆分成0010、1010结果是2、a
十六进制结果是:0x2a
我们来验证一下:十进制为42
再转十六进制:42/16=2 a
2/16=0 2
最终结果是0x2a,验证正确