美文网首页
十进制数转二进制

十进制数转二进制

作者: 茄茄茄 | 来源:发表于2019-06-18 12:12 被阅读0次

    十进制数转二进制数

    前言

    十进制是以十为基础的数字系统。

    "满十进一,满二十进二, ...",以此类推。

    十进制数中每一个位上可能使用的数值为(1,2,3,4,5,6,7,8,9,0),个位数上的数字表示未满十的数,即含有多少个10^0;十位数上的数表示含有几个十,即含有多少个 10^1;百位数的数表示含有多少个100,即含有多少个 10^2。以此类推,一个 N(代表正整数)位十进制数中,从右往左第 i 位上的数字表示含有多少个 10^(i-1) (i 代表正整数,起始值为 1),这些值(每个位上的数字乘以表示的数量级)的和即构成了这个十进制数的值。

    那么 4 位的正整数 hjkl (l 代表个位数上的数字,k 代表十位数上的数字,j 代表百位数上的数字,h 代表千位数上的数字) 就可以这样表示 h*10^(4-1) + j*10^(3-1)+ k*10^(2-1)+ l*10^(1-1)

    同理对于二进制(每一个位上可能使用的数为 0,1)来说,一个 N(代表正整数)位二进制数中,从右往左第 i 位上的数字表示含有多少个 2^(i-1), i 代表正整数,起始值为 1。

    十进制整数转二进制

    前言讲到十进制与二进制位上代表的含义,那十进制数转二进制数就简单了。

    将一个十进制数转二进制,其实就是一个数值从一种表示方式转换到另一种表示方式。即由原来每个位上表示的含有几个 10^(i-1) 转化为每个位上含有几个 2^(i-1),i 表示从右往左第 i 位,起始值为 1 。

    辗转相除法

    整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序。
    为什么是取余数,因为余数表示 “未凑满上一位,溢出来的那一部分”

    例子:

    22 转二进制的计算过程  
    
    22 / 2  11 余 0
    11/2     5  余 1
    5  /2      2  余 1
    2  /2      1  余 0
    1  /2      0  余 1  
    
    得到22的二进制是10110
    
    小技巧

    一般算比较小的数字的话,就先找小于并且临这个数最近的2的N次方。然后依次。

    比如 37 
    32 + 4 + 1
    对应的就是 100101(32 16 8 4 2 1 有的写1,反之写0)。
    

    浮点数转二进制

    浮点数转二进制道理跟整数转二进制是一样的。但是有一点 需要注意的是,二进制浮点数的小数位,每一位(从左往右)表示的是 2^(-i) ,i 从 1 开始算起。

    浮点数转二进制的时候,整数部分与小数位部分要分开计算转换。

    小数部分:除以2的倒数相当于乘以2,取整,小数部分继续乘以2,取整,直到小数部分0为止,将整数顺序排列。

    为什么是取小数部分继续运算呢?因为在每一次除以2的倒数得到的结果中,小数部分也是表示的是 “未凑满上一位高位,溢出来的那一部分”。注意在小数位中,每一位表示的数量级也是从左往右递减的。

    例子:

    0.8125 转二进制的计算过程  
    
    0.8125x2=1.625 取整1,小数部分是0.625  
    0.625x2=1.25 取整1,小数部分是0.25  
    0.25x2=0.5 取整0,小数部分是0.5  
    0.5x2=1.0 取整1,小数部分是0,  
    
    得到0.8125的二进制是0.1101。
    

    相关文章

      网友评论

          本文标题:十进制数转二进制

          本文链接:https://www.haomeiwen.com/subject/qgzxqctx.html