十进制与二进制的转换

相信学过计算机的同学一定对十进制二进制较为熟悉,计算机底层的通讯就是二进制,那怎么快速对一个十进制数转化为二进制数呢?

十进制数制系统

十进制(以十为基础进位)数系的每一个位值有十个可能的值(0、1、2、3、4、5、6、7、8、9、)

二进制(以二位基数进位)数系只有两个可能的值,即0和1。

正整数的十进制转化为二进制

方法一

重点:除二取余,倒序排列

解释:将一个十进制数除以二,得到的商再除以二,以此类推直到商等于一或零时为止,倒取将取得的余数,即换算为二进制的结果。

例如把52换位二进制数

52\div2=26······0

26\div2=13······0

13\div2=6······1

6\div2=3······0

3\div2=1······1

1

52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数为110100。

由于计算机内部表示数的字节单位都是定长,以二次幂展开,或者八位,或者十六位,或者三十二位······。于是一个二进制数用计算机表示时,位数不足二次幂时高位上要补足若干个0.那么

(52)10=(00110100)2

方法二

用十进制数减去离十进制最近的(小于十进制二)的次幂,例如52,最近的二次方幂为2^{5}如减完为负数则二进制位记为0,若减完为正数则二进制位记为1,用取得的数减去2^{n-1},直到减到2^{0}.

以52为例

52-2^{5}=20······1

20-2^{4}=4 ······1

4-2^{3}·······0

4-2^{2}=0······1

0-2^{1}······0

0-2^{0}······0

得到的二进制数正序排列为110100,补齐位数为00110100

(52)10=(00110100)2

二进制数   高位0  0  1 1 0 1 0 0 低位
下标序号   高位7  6 5 4 3 2 1 0 低位

从最低位(最右)算起,位上的数字乘以本位的权重,权重就百是2的第几位的位数减一次方。

比如第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有度的值加起来。

例如(00110100)2转换为十进制

0  0  1  1  0  1  0  0

0*2^{7}+0*2^{6}+1*2^{5}+1*2^{4}+0*2^{3}+1*2^{2}+0*2^{1}+0*2^{0}=52

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值