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

  原文来自: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所示)对应的值相乘后相加得到的值即为换算后的十进制。

  

转载于:https://www.cnblogs.com/zhangym118/p/5949997.html

十进制 转换为 二进制相关推荐

  1. C语言递归算法将十进制转换为二进制(附完整源码)

    C语言递归算法将十进制转换为二进制 C语言递归算法将十进制转换为二进制完整源码 C语言递归算法将十进制转换为二进制完整源码 #include <assert.h>/*** Decimal ...

  2. Java 实验5 T3 将十进制转换为二进制

    题目 将十进制转换为二进制 代码 import java.util.Scanner;public class chapter5_3 {public static void main(String[] ...

  3. 将一个十进制转换为二进制,八进制,十六进制

    package com.db2;/*** 将一个十进制转换为二进制,八进制,十六进制* * @author denny**/ public class Demo2 {public static voi ...

  4. [转载] Python程序将十进制转换为二进制,八进制和十六进制

    参考链接: Python程序将十进制转换为二进制,八进制和十六进制 Here you will get python program to convert decimal to binary, oct ...

  5. java中如何将十进制转换为二进制

    一.进制是什么? 进制也就是进位计数制,是人为定义的带进位的计数方法. 对于任何一种进制-X进制,就表示每一位上的数运算时都是逢X进一位. 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一, ...

  6. C++进制转换程序(二进制转换为十进制,十进制转换为二进制)

    1.十进制转换为二进制 #include<iostream> using namespace std; int main(){ int N;     cout<<"p ...

  7. C语言——十进制转换为二进制

    #include <stdio.h> #include <math.h> //十进制转换为二进制 long long convertDecimalToBinary(int n) ...

  8. c语言十进制转八进制递归,C语言之利用递归将十进制转换为二进制

    #include #include void change2(int num) { if (num != 0) { change2(num / 2); printf("%d", n ...

  9. 【C语言】之实现十进制转换为二进制

    /** 文件名:二进制转换.c* 功能描述:把10进制数转换为二进制数* 编写人:王廷云 */ #include <stdio.h>#define NR (sizeof(int)*8) / ...

  10. 十进制转换为二进制和十六进制

    十进制转换为二进制和十六进制 一.十进制数转化为二进制 整数除以2,商继续除以2,得到0为止. 以23为例: 23/2 11余1 11/2 5 余 1 5 /2 2余 1 2 /2 1余 0 1 /2 ...

最新文章

  1. Java项目:网上选课系统(java+SSM+jsp+mysql+maven)
  2. 如何使用TensorFlow中的Dataset API
  3. 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码
  4. VTK:可视化算法之ClipSphereCylinder
  5. Sublime Text 2 中文包
  6. spi app理解和编写测试
  7. 程序员,活得是本事:30 岁后的 人生建议
  8. 一个 Spring Boot 项目该包含哪些?
  9. Visual Studio附加调试进程时找不到
  10. [生活] 2015年终总结,2016开篇计划
  11. 【QT】FillRect填充的区域实现部分区域透明
  12. 《阿凡达》《泰坦尼克号》
  13. 用加密算法给女朋友写封情书
  14. 2022-5-20 解决 cdn.jsdelivr 打不开
  15. 转录组分析 - 使用 sratoolkit docker镜像 - 目录挂载 - docker中的路径和linux中的路径
  16. 搜索引擎shodan
  17. 2009年世界顶级杀毒软件排行榜揭晓了
  18. 软考高级-信息系统管理师之项目管理基础(最新版)
  19. 《现代数学基础丛书》
  20. 刷题记录:牛客NC20811蓝魔法师

热门文章

  1. 人脸识别技术商用再加速 安企步履坚定
  2. SAP MIGO 报错-在例程WERT_SIMULIEREN字段NEUER_PREIS中字段溢出-
  3. 用泰勒级数来估计函数的近似值
  4. 在医疗领域你知道哪些人工智能黑科技?
  5. SAP MM 并非奇怪现象之MB5B报表查不到某一笔出库记录?
  6. 深度丨如果机器人三定律被打破,我们可以做些什么?
  7. 高金吉院士:让机器“自愈化”引领新科技变革
  8. 鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂
  9. IBM 揭晓全球第一项 2纳米芯片技术,为半导体领域实现重大突破
  10. 全球自动驾驶政策概况及特征研究