• 十进制 转换为 二进制


      听说优酷前端面试有问进制数转换的,甚至是负正整数转换为二进制,那就索性一次整个明白~

       原文来自:http://jingyan.baidu.com/article/597a0643614568312b5243c0.html

    十进制转成二进制主要有以下3种:

      正整数转二进制、负整数转二进制、小数转二进制

    1、  正整数转成二进制。

      口诀:除二取余,倒序排列,高位补零。

      举个栗子:42转化为二进制(本来打算自己画张图的,太麻烦,直接粘百度到的图吧~)

        

       42 除以2得到的余数(右边)为010101,然后倒着排一下就是取到的二进制了(如下图)

      

      计算机内部表示数的字节单位是定长的,如8位,16位,或32位。所以,位数不够时,高位补零,所说,如图3所示,42转换成二进制以后就是。00101010,也即规范的写法为(42)10=(00101010)2

      

     2、  负正整数转成二进制。

        先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一。还以42为例,负整数就是-42,如图4所示为方法解释。最后即为:(-42)10=(11010110)2.

       

     2、  小数转成二进制。

       对小数点以后的数乘以2,有一个结果吧,取结果的整数部分(不是1就是0喽),然后再用小数部分再乘以2,再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了就OK了。然后把取的整数部分按先后次序排列就OK了,就构成了二进制小数部分的序列,举个例子吧,比如0.125,如图5所示。

      

      如果小数的整数部分有大于0的整数时该如何转换呢?如以上整数转换成二进制,小数转换成二进制,然后加在一起就OK了,如图6所示。

      

    二进制转成十进制:

      

    首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。

            先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到的就为十进制,比如1010转换为十进制,方法如图7所示。

      

      

      若二进制补足位数后首位为1时,就需要先取反再换算:例如,11101011,首位为1,那么就先取反吧:-00010100,然后算一下10100对应的十进制为20,所以对应的十进制为-20,方法如图8所示。

      二进制如何转十进制,十进制如何转二进制

      有小数的二进制转换为十进制:例如0.1101转换为十进制的方法:将二进制中的四位数分别于下边(如图9所示)对应的值相乘后相加得到的值即为换算后的十进制。

      

  • 相关阅读:
    haproxy+keepalived配置haproxy反向代理的高可用
    正则表达式
    logstash 中multiline插件的用法
    logtash 接收多配置文件
    Debian 8 升级到 9 Debian 9 How to upgrade Debian 8 Jessie to Debian 9 Stretch
    YOLO object detection with OpenCV
    快速 图片颜色转换迁移 Color Transfer Opencv + Python
    对抗网络GAN的应用实例
    nvflash 报错解决
    卷积神经网络(CNN)在语音识别中的应用
  • 原文地址:https://www.cnblogs.com/zhangym118/p/5949997.html
Copyright © 2020-2023  润新知