十进制与二进制转换 小技巧

首先要认识一下 十进制数 在计算机中是怎么表示的:

  108 = 1 * 10 2+ 0 * 10 1 + 8 * 10 ^0
  16 = 1 * 10 1+ 6 * 10 0

那么二进制数 在计算机中又是怎么表示的:

  5 = 1 * 22 + 0 * 2 1 + 1 * 20
  因此 二进制数 101 代表的是 5
  16 = 1 * 24 + 0* 23 + 0 *2 2 + 0 * 2 1 + 0 * 20
  因此 二进制数 10000 代表的是 16
   - 注意: 什么是二进制数?
  - 数码: 0、1
   - 基数:2
   - 运算规律:缝 2 进 1 ,借 1 当 2
   - 二进制数的权展开: (101.01)B = 1 * 2 2 + 0 * 2 1 + 1 * 20 + 0 * 2 -1 + 1 * 2-2

那么 二进制数与 十进制数之间转换 有没有便捷的方法呢?

我们先来了解一下 十进制是怎么转换成二进制的
  1. example: 108(10) = ?
    • 首先,前面提到了 二进制数是 由数码:0和1 基数为2 的一种表示方法
    • 那么 当 十进制要转换成二进制的时候,就是由 基数为10 转换成基数为2 的 过程
    • 因此我们需要先了解 2的各个次方的结果
              20 = 0
              21 = 2
              22 = 4
              23 = 8
              24 = 16
              25 = 32
              26 = 64
              27 = 128
              ……
    • 通过上面 我们可以看得出来 108 是小于 2的7次方,故,108 最大能包含 2 的次方数是26
    • 下面,我们就来展开十进制数 108 转换 二进制数的过程
            108 = 64 + 44
                   = 26 + 44
                   = 26 + 32 + 12
                   =26 + 25+ 12
                   =26 + 25+ 8 + 4
                   =26 + 25+ 23 + 4
                   =26 + 25 + 23 + 22
                   =1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 1 * 22 + 0 * 21+ 0 * 20
                    注意: 计算到这边的时候,会发现,“=26 + 25+ 23 + 22 ”非常的像二进制权展开的样式,但是其中缺少了24 、21 和 20,因此我们要帮其补齐
                   综上, 108 = 1101100通过计算机自带的计算器  验证  转换结果

可以看到,通过上面的方式会发现 不管是用于 日常计算还是转换成程序,都会很麻,那么有没有简单便捷的方式?答案看到是有的。下面我们就来详细了解一下几种便捷的方法:

十进制转换二进制 便捷方法
  • 除以 2 逆向取余法
    example: 108(10) = ?除以2逆向取余法
        通过上图,会发现, 将 108除以2后的每位余数按照正向顺序取出来所得是: 0011011
        然而根据之前计算所得:108(10) = 1101100(2)
        通过对比 就会发现,将余数反向顺序取出来所得 就是 1101100 ,也就是 十进制整数108 的二进制数 。这就是除以2方向取余法
        通过上面我们已经明白了 整数的 十进制转二进制的快速方法,那么如果是带小数点的数呢?
  • 乘以2 顺向取整法
    在了解 乘以2顺向取整法之前,咱们先了解一下,十进制带小数点的数 怎么转换成二进制数
    example:0.875(10) = ?
    与前面前面类似,通过拆分方法,咱们先计算出十进制小数转换成二进制小数的结果:(如下图)
    拆分计算出 小数的二进制数
    通过上图,可得到 0.875(10) = 0.111(2)
    那么乘以2顺序取整数法是怎么样的呢:
    乘以2顺向取整法
    该方法要注意的是,只有取出 整数即可,小数点后面的数 不管。

补充个小知识

二进制数的运算规则
加法规则: 0+0 = 0 ; 0+ 1 = 1 ;1+0 =1 ; 1+1 = 10

  example: (1101.01)2 + (11.01)2 = ?
      110.1.01
    +     11.01
   -----------------
     10000.10
(1101.01)2 + (11.01)2 = 10000.10

乘法规则: 0* 0 = 0; 01 =0 ; 10 =0; 1*1 =1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值