八进制、十六进制与十进制的转换,bytes的十六进制

二进制、八进制、十六进制与十进制的不同顾名思义在于进位不同:

十进制遇十进一,9+1=10,19+1=20,199+1=200。相同数字前一位是后一位的十倍,例如11,前一个代表10,后一个是1。

 

一、八进制

八进制遇八进一,7+1=10,17+1=20,27+1=30。相同数字前一位是后一位的八倍,例如11,前一个代表8,后一个是1;

 

故八进制换十进制:

11(八进制)=1*8+1=9(十进制);

654(八进制)=6*8*8+5*8+4=428(十进制)

 

十进制换八进制:除k取余法,将十进制数除以转换进制数,倒过来取余数,得转换进制数。

129/8=16余1,16/8=2余0,2/8=0余2,

故十进制的129八进制应为201(验证:2*8*8+1=129)

572/8=71余4,71/8=8余7,8/8=1余0,

故十进制的572八进制应为1074(验证:1*8*8*8+7*8+4=572)

 

二、十六进制

同理八进制,十六进制是遇十六进一,除了1-9以后还有代表10-15的ABCDEF,其中A代表10,B代表11,以此类推。

 

故十六进制换十进制:

EF(十六进制)=14*16+15=239(十进制),

5A(十六进制)=5*16+10=90(十进制)

 

故十六进制换十进制:

895/16=55余15,55/16=3余7,3/16=0余3,

故十进制的895十六进制应为37F

 

三、bytes的十六进制

计算机进行的是二进制计算,四位二进制1111最大表示十进制的15,十六进制一位最大也是表示十进制的15,所以一位十六进制刚好可以换算为四位二进制,不多不少,为了传输和存储信息方便,一般用十六进制代替四位二进制。

python中的bytes就是由十六进制组成的数字。

 

posted @ 2019-05-31 12:11  relex  阅读(2632)  评论(0编辑  收藏  举报