二进制转十进制,十进制转二进制的算法

十进制转二进制: 
用2辗转相除至结果为1 
将余数和最后的1从下向上倒序写 就是结果 
例如302 
302/2 = 151 余0 
151/2 = 75 余1 
75/2 = 37 余1 
37/2 = 18 余1 
18/2 = 9 余0 
9/2 = 4 余1 
4/2 = 2 余0 
2/2 = 1 余0 
故二进制为100101110

二进制转十进制 
从最后一位开始算,依次列为第0、1、2...位 
第n位的数(0或1)乘以2的n次方 
得到的结果相加就是答案 
例如:01101011.转十进制: 
第0位:1乘2的0次方=1 
1乘2的1次方=2 
0乘2的2次方=0 
1乘2的3次方=8 
0乘2的4次方=0 
1乘2的5次方=32 
1乘2的6次方=64 
0乘2的7次方=0 
然后:1+2+0 
+8+0+32+64+0=107. 
二进制01101011=十进制107.

一、二进制数转换成十进制数 
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。

二、十进制数转换为二进制数 
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 
1. 十进制整数转换为二进制整数 
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2.十进制小数转换为二进制小数 
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。 
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 
回答者:HackerKinsn - 试用期 一级 2-24 13:31

1.二进制与十进制的转换 
(1)二进制转十进制
方法:"按权展开求和" 
例: 
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10 
=(8+0+2+1+0+0.25)10 
=(11.25)10 
(2)十进制转二进制

· 十进制整数转二进制数:"除以2取余,逆序输出" 
例: (89)10=(1011001)2 
2 89 
2 44 …… 1 
2 22 …… 0 
2 11 …… 0 
2 5 …… 1 
2 2 …… 1 
2 1 …… 0 
0 …… 1 
· 十进制小数转二进制数:"乘以2取整,顺序输出" 
例: 
(0.625)10= (0.101)2 
0.625 
X 2 
1.25 
X 2 
0.5 
X 2 
1.0 
2.八进制与二进制的转换 
例:将八进制的37.416转换成二进制数: 
37 . 4 1 6 
011 111 .100 001 110 
即:(37.416)8 =(11111.10000111)2 
例:将二进制的10110.0011 转换成八进制: 
0 1 0 1 1 0 . 0 0 1 1 0 0 
2 6 . 1 4 
即:(10110.011)2 =(26.14)8 
3.十六进制与二进制的转换
例:将十六进制数5DF.9 转换成二进制: 
5 D F . 9 
0101 1101 1111.1001 
即:(5DF.9)16 =(10111011111.1001)2

例:将二进制数1100001.111 转换成十六进制: 
0110 0001 . 1110 
6 1 . E 
即:(1100001.111)2 =(61.E)16

二进制转十进制,十进制转二进制的算法相关推荐

  1. C++十进制数转换为二进制表示的算法(附完整源码)

    C++十进制数转换为二进制表示的算法 C++十进制数转换为二进制表示的算法完整源码(定义,实现,main函数测试) C++十进制数转换为二进制表示的算法完整源码(定义,实现,main函数测试) #in ...

  2. c语言将十进制转化为二进制算法_base64算法初探即逆向分析

    算法分析 虽说base64严格意义上来说并不能算是加密算法,但的确应用方面来说还算是比较广,在CTF的算法逆向中Base系列算是也比较常见的,萌新刚开始学算法,就以base64为例,对该算法进行一个简 ...

  3. 算法设计-利用栈把十进制转换成二进制

    十进制转换成二进制 void conversion(){ InitStack(S); scanf("%d",n); while(N){ Push(S,n%2) n=n/2; } w ...

  4. 二进制转化为十进制算法原理

    从最低位(最右)算起,位上的数字乘以本位的权重,权重就百是2的第几位的位数减一次方. 比如第2位就是2的(2-1次)方,就是2:第8位就是2的(8-1)次方是128.把所有度的值加起来. 2(1-1) ...

  5. C语言编程序输出SCHAR_MAX的,运用堆栈把十进制变换成二进制

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:运用堆栈把十进制变换成二进制 问题详情: 初始化堆栈 while(N) { push(S,N%B); N=N/B; } while( ...

  6. 十进制负数的二进制表示法

    文章出自个人博客https://knightyun.github.io/2018/04/04/negative-binary,转载请申明 十进制转正整数转二进制应该都会,用C语言代码简单表示算法: # ...

  7. java十进制转换成二进制

    十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...

  8. 数据结构6:栈的应用(十进制转化为二进制)

    十进制转化为二进制,采用的是"除以2求余数"的算法,就是将整数不断除以2,每次得到的余数就是由低到高的二进制 这个"除以2"的过程得到的余数是从低到高的次序,而 ...

  9. 计算机中十进制转二进制逻辑原理,.计算机中为什么要采用二进制?及二进制的基本运算规则,还有.二进制数据与十进制、八进制、十六进制数据之间的转换方法?...

    满意答案 sqq212527 2013.04.11 采纳率:46%    等级:12 已帮助:10556人 编辑本段简介 20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是 ...

最新文章

  1. ++项目 cmake头文件路径_CMAKE入门实战
  2. opencv 显示图片(直接)
  3. c语言回调函数_C语言学习第26篇---函数与指针分析 回调函数
  4. k8s之pod管理(控制器)
  5. 00018计算机应用2018年4月,全国2019年4月自考00018《计算机应用基础》试题及答案...
  6. 综述:编程语言的发展趋势及未来方向
  7. 如何有效利用碎片时间?这里有个办法
  8. 剖析java中的String之__拼接
  9. Java多线程系列(五):线程池的实现原理、优点与风险、以及四种线程池实现
  10. JavaScript定义类的几种方式
  11. Linux学习笔记:安装CentOS与Linux常用命令
  12. Vue 中的 v-cloak 作用及用法
  13. C# 中将所有引用的DLL 和exe文件打成一个exe文件(转)
  14. 使PNG图片在IE6下透明(非背景图片)
  15. DCM4CHEE 中worklist 乱码问题 dcmchee 中文乱码
  16. 网页前端简单计算器制作
  17. 基于51单片机及DS18B20温度传感器数码管显示程序
  18. 机器学习必看书籍和视频汇总
  19. Python中文文本分句
  20. 我的世界java邮箱和密码_java实现邮箱找密码

热门文章

  1. 职业软件测试工程师的修炼之道!
  2. python正则表达式初识(七)_Python正则表达式初识(七)
  3. 微信与服务器通讯失败,云开发实时通信出现下面错误码是什么原因?-402002,-402010...
  4. 关于《概率论与数理统计》最全参数估计总结
  5. Linux标准I/O与文件I/O操作的区别
  6. 2021新乡市铁一中高考成绩查询,新乡铁一中2019年高考一本几人
  7. 木木的Unity学习笔记(四)—— Unity中的柏林噪声(Perlin Noise)
  8. kali学习-枚举服务
  9. linux 笔记本 内存 热,笔记本安装linux后,机子温度很高,没有解决方法?
  10. 最新Landsat数据下载教程