常用的进制以及进制间的转换


进制

常用的几种进制:十进制、八进制、十六进制、二进制

  • bit(位):二进制中用0/1表示
  • byte(字节):1个字节——8 bit(8个位)——2个(十六进制数)

十进制

  • 包含符号:0~9
  • 用十进制表示一个数字:
    按权展开相加:(每一位上的数字与权的乘积和)
    权:以基数(这里代表10)为底,数字所处的位置的序号为指数。
    (序号以数字的整数部分第一位按0开始算起,左边进一位加1,右边退一位减1)

123.45=(1 * 102)+(2 * 101 )+(3 * 100 )+(4 * 10-1 )+(5 * 10-2 )

二进制

  • 包含符号:0,1
  • 二进制数字的意义:

1011.1(二进制)
=(1 * 23 )+(0 * 22 )+(1 * 21 )+(1 * 21 )+(1 * 2 -1 )
= 8    +   2 +  1 +  0.5
= 11.5(十进制)

  • 二进制的权重:

27  26  25  24  23  22  21  20
128 64  32  16  8   4   2    1

十六进制

  • 包含:符号0~9以及abcdef(或ABCDEF)
    (abcdef代表数字10、11、12、13、14、15)
  • 用十六进制表示:
    将二进制按四个位起算
    在求得的十六进制数前面加0x表示

0011 0100 1010 1111 1011 1110 1101 1010
 3  4  a  f  b  e  d  a
十六进制:0x34afbeda

八进制

  • 包含符号:0~7
  • 八进制数字的意义:

123(八进制)
= 1 * 82 + 2 * 81 + 3 * 80
=64+16+3
= 83(十进制)


进制间的转换

十进制的转换

十进制 转 二进制

  • 1.基数相除,倒序取余
  • 2.按二进制的权重凑齐十进制数

3 * 512+7 * 64+4 * 8+5
=512 * 2+512+64 * 4+64 * 2+64+8 * 4+0+0+4+0+1
=11111100101


123.5
=64+32+16+8+0+2+1
=1111011.1


200
=128+64+8
=1000 0000(二进制)+64+8
=1100 1000


30
=32-2
=10 0000(二进制)-1-1
=011111-1
=011110

十进制 转 八进制

  • 将其转换成2进制
    从右向左,三三分组,左边不够的话补符号位

十进制 转 十六进制

  • 1.将其转换成2进制
    从右向左,四四分组,左边不够的话补符号位
  • 2.基数相除,倒序取余

50(十进制)
=11 0010
=0011 0010(二进制)
=0x32(十六进制)


50(十进制)
=3(2)…………(50除以16=3余2)
=0x32(十六进制)

100(十进制)
=110 0100
=0110 0100(二进制)
=0x64(十六进制)


100(十进制)
=6(4)…………(100除以16=6余4)
=0x64(十六进制)

2006
=1024+512+256+128+64+0+16+0+4+2+0
=111 1101 0110
=0x7D6


2006
=125(6)…………(2006除以16=125余6)
=7(13)…………(125除以16=7余13)
=0x7D6

100
=6(4)…………(100除以16=6余4)
=0x64


12345
=771(9)…………(12345除以16=771余9)
=48(3)…………(771除以16=48余3)
=3(0)…………(48除以16=3余0)
=0x3039

十六进制的转换

十六进制 转 二进制

0x1234(十六进制)
=0001 0010 0011 0100(二进制)

十六进制 转 十进制

  • 按权展开求和

0x56(十六进制)
=0101 0110
=1010110(二进制)
=64+16+4+2
=86(十进制)


0x56(十六进制)
=5 * 16 1+ 6 * 16 0
=86(十进制)

123(十六进制)
=1 * 162 + 2 * 161 + 3 * 160
=291(十进制)


二进制的转换

二进制 转 八进制

01 011 010 110 111 110 011 110 111 110 101
=013267636765

二进制 转 十六进制

0101 1010 1101 1111 0011 1101 1111 0101
=0x5adf3df5

二进制 转 十进制

0101 1010
=64+16+8+2
=90


1111 0101
=-1110101
=-0001010+1
=-0001011
=-11


1111 1111
=-1111111
=-000000+1
=-1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值