-
十进制小数或带小数的十进制转二进制--控制小数位数输出(C语言)
2018-12-14 23:44:26十进制小数或带小数的十进制转二进制: 十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的...十进制小数或带小数的十进制转二进制:
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
如:0.625=(0.101)B
0.625*2=1.25取出整数部分1
0.25*2=0.5取出整数部分0
0.5*2=1取出整数部分1
再如:0.7=(0.1 0110 0110…)B
0.7*2=1.4取出整数部分1
0.4*2=0.8取出整数部分0
0.8*2=1.6取出整数部分1
0.6*2=1.2取出整数部分1
0.2*2=0.4取出整数部分0
0.4*2=0.8取出整数部分0
0.8*2=1.6取出整数部分1
0.6*2=1.2取出整数部分1
0.2*2=0.4取出整数部分0
2、十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例、把 173D转换为二进制数。
解:
以下为十进制小数或带小数的十进制转二进制代码。
#include<stdio.h> #define N 10 #define M 100 void fun10_2_Z(long number)//十进制整数部分转二进制 { char ch[M]; int len=0; if(number==0) { printf("%d",number);//如果整数部分为零直接输出 } else { while(number) { ch[len++]=number%2; number=number/2; } for( ;len>0;len--)//逆向输出 { printf("%d",ch[len-1]); } } } void fun10_2_X(double number) //十进制小数部分转二进制 { int i,len=0; int arry[N]; while(number) { int temp = (int)(number*2); arry[len++]=temp; if(len==N) break; //控制小数点后不超过十位 number = 2*number-temp; } printf("."); for(i=0;i<len;i++) { printf("%d",arry[i]); } } int main() { double number; scanf("%lf",&number); long t=(int)number;//整数部分 double m=number-t;//小数部分 fun10_2_Z(t); fun10_2_X(m); return 0; }
运行效果截图:
十进制小数转二进制,运行截图:
带小数的十进制转二进制运行截图:
-
c++十进制转二进制_进制转换 十进制转二进制数
2020-11-28 11:57:46上一节我们学习了计算机中信息的表示方式,常用的进制...也就是说一个带小数的十进制数,我们整数与小数要分别使用不同的方法来转换成二进制数。如果是单独的十进制整数,那只需采用下面的方法。 整数部分十进制转换...上一节我们学习了计算机中信息的表示方式,常用的进制表示方式。那常用的进制之间是如何转换的呢?今天我们就来学习一下十进制转换二进制的方法。
十进制的数我们可以看成由两部分组成。一个是整数部分,一个是小数部分。也就是说一个带小数的十进制数,我们整数与小数要分别使用不同的方法来转换成二进制数。如果是单独的十进制整数,那只需采用下面的方法。
整数部分十进制转换二进制的方法我们称为“除2取余法”,得到的余数逆序排列,就得到了结果。
小数部分我们使用的方法是“乘2取整法”,得到的整数,正向排列,即把给定的十进制小数不断乘以2,取乘积的整数部分作为二进制小数如此不断重复,得到二进制小数的其他位。按要求保留位数。
上述十进制转换二进制的方法同学们掌握了吗?找一些转换题再试试吧!
下一篇我们会介绍二进制转换成十进制的方法,欢迎大家关注并阅读。
本公众号介绍计算机基础知识及办公软件的使用方法,欢迎关注!
-
十进制小数转换成二进制小数的快速方法
2012-09-16 10:03:23十进制小数转换成二进制小数的快速方法 Windows自带的计算器可以方便地把十进制的整数转换成二进制的整数,但是十进制的小数则无法直接转换成二进制的小数。 今天,我发现了一个快速的解决办法! ...十进制小数转换成二进制小数的快速方法Windows自带的计算器可以方便地把十进制的整数转换成二进制的整数,但是十进制的小数则无法直接转换成二进制的小数。今天,我发现了一个快速的解决办法!
一个十进制小数可以表示成“X.Y”的形式,“X”是整数部分,“Y”是纯小数部分,要分别进行转换,最后合在一起。
整数部分“X”的转换成二进制可以直接利用Windows的计算器,非常简单,不说了。
对纯小数部分“Y”的转换,要提前设定转换精度,比如精确到小数点后16位。别理解错了,对于二进制的小数点后16位在精度上仅相当于十进制小数点后的5位,并非十分高!
将“0.Y”乘以2的16次方,即“0.Y×65536”,结果可能会有小数部分,将小数部分四舍五入到个位,得到一个没有小数部分的纯整数,称作“Z”。
利用Windows计算器将“Z”转换成二进制,若结果不足16位,则在最前面补0,补够16位。这就是小数部分“Y”对应的二进制了。
现在将“X”和“Y”对应的二进制数码合在一起(中间当然要有小数点),就是最终结果了!
举个实例:把十进制纯小数“0.123”转换成二进制小数。
0.123×65536=8060.928
四舍五入后得到“8061”,转换成二进制为“1111101111101”,只有13位,前面需要补3个“0”,得到“0001111101111101”。因此结果是
0.123=(0.0001111101111101)2=(0.1F7D)16
-
十进制小数转化为二进制小数
2021-01-13 10:05:34十进制小数转换为二进制小数 定义 进制也就是进位计数制,是人为定义的带进位的计数方法。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 一、二进制数转换成十进制...
定义
进制也就是进位计数制,是人为定义的带进位的计数方法。
十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
例如把二进制数 110.11 转换成十进制数。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例如把 (173)10 转换为二进制数。
解:
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例如把(0.8125)转换为二进制小数。
解:
例:
(173.8125)10=( )2
解:
在上个例子中得(173)10=(10101101)2
得(0.8125)10=(0.1101)2
把整数部分和小数部分合并得:(173.8125)10=(10101101.1101)2
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又 得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
十进制小数转二进制
如:0.625=(0.101)B
0.625*2=1.25======取出整数部分1 0.25*2=0.5========取出整数部分0 0.5*2=1==========取出整数部分1
再如:0.7=(0.1 0110 0110…)B
0.7*2=1.4========取出整数部分1 0.4*2=0.8========取出整数部分0 0.8*2=1.6========取出整数部分1 0.6*2=1.2========取出整数部分1 0.2*2=0.4========取出整数部分0 0.4*2=0.8========取出整数部分0 0.8*2=1.6========取出整数部分1 0.6*2=1.2========取出整数部分1 0.2*2=0.4========取出整数部分0
-
Matlab——二进制转十进制(包含小数转换)
2019-04-03 10:10:13由于需要,最近写了一个小程序,实现带小数的二进制转十进制,先看代码: clc clear all % 整数部分 bit1 = 3; bit_integer = [0,1,0]; % 小数部分 bit2 = 2; bit_decimal = [1,0]; intege... -
用java实现十进制与二进制小数的互转机制
2018-04-13 15:31:03用java实现十进制与二进制小数的互转机制 本篇博客主要讲述用java...1、 编写程序实现十进制小数x=0.7 的二进制转换,并分析其误差(即重新将二进制小数转成十进制小数,和原十进制小数进行比较。) 2、编程... -
带小数的十进制转换为二进制
2018-04-13 19:44:02(Tip:十进制小数转换成二进制用乘2取整)解题思路:分为整数部分转换和小数部分转换,两步操作整数部分除2逆向取余小数部分乘2正向取整如:12.45=1100.0.011100110012/2=6..06/2=3..03/2=1..11/2=0..1结果为11000.... -
转载:十进制小数转换成二进制小数的快速方法
2009-09-02 14:32:00Windows自带的计算器可以方便地把十进制的整数转换成二进制的整数,但是十进制的小数则无法直接转换成二进制的小数。 今天,我发现了一个快速的解决办法! 一个十进制小数可以表示成“X.Y”的形式,“X”是整数部分... -
带小数的二进制转十进制(C代码)
2018-12-16 20:52:56思路:处理带小数的二进制转十进制,我们一般可以把它分为两部分,整数部分和小数部分,整数部分二进制转十进制采用逆向累加法,小数二进制转十进制采用正向累加法,然后总体相加即可。 #include<stdio.h&... -
c 带符号位小数的二进制转十进制
2020-12-25 15:29:35带小数的二进制转十进制 看到的都是 理论 没有代码, 今天把自己的公布下,欢迎指正(部分是借用别人的)如有疏漏,恳请指出。 #include <stdio.h> #include <string.h> #include <math.h> void .... -
C语言使用栈和队列实现二进制与十进制的互转(带小数)
2019-12-22 11:38:44C语言实现二进制与十进制的互转(带小数) 全部代码 #include <stdio.h> #include <stdlib.h> #include <math.h> #define M 100 typedef long ElemType; // 栈 typedef struct { ... -
两个八进制小数怎么相加_十六进制,十进制,八进制,二进制转换(含小数部分)...
2021-01-15 07:57:251.1、基本原则:按权展开法,即把各数位乘权的i次方后相加1.2、实例:例1:二进制与十进制的转换,带小数部分01011010.01B=0×2^7+1×2^6+0×2^5+1×2^4+1×2^3+0×2^2+1×2^1+0×2^0+0×2^-1+1×2^-2=90.25例2:八... -
C语言实现二进制与十进制的互转(带小数)
2019-12-22 11:34:43直接用C语言实现,没有数据结构 需要看栈和队列版的看这里 C语言使用栈和队列实现二进制与十进制的互转(带小数) 代码 #include #include #include /** * 整数部分十进制转二进制 */ void convertIntegerToBinary... -
python怎么将十进制转换为二进制_python十进制和二进制的转换方法(含浮点数)
2020-12-02 14:44:30本文介绍了python十进制和二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下:我终于写完了 , 十进制转二... pre=4):'''把一个带小数的二进制数n转换成十进制小数点后面保留pre位小数'''string... -
带小数的十进制数字和2进制数字相互转换的逻辑
2018-10-10 21:39:00不同进制是指不同位置上数字对应的权值不同。...乘二取整是针对十进制小数部分转换为二进制的方法,而整数部分为除二取余,具体如下: 将整数部分辗转相除2,将余数倒序排列,即整数部分的二进制数 将... -
带小数的十进制转二进制(c语言)
2021-01-12 17:38:07#include<stdio.h> int main() { int n; float m; scanf("%d",&n); scanf("%f",&m); for(int i=0;i<16;i++) { // 运算符 & 的优先级比==低,所以要加() if ( ( n &... -
[转载] python怎么将十进制转换为二进制_python十进制和二进制的转换方法(含浮点数)
2021-01-04 09:04:39参考链接: Python中的十进制函数 1 本文介绍了python十进制和二进制的转换方法(含浮点数),分享给大家,也给自己留个...把一个带小数的二进制数n转换成十进制 小数点后面保留pre位小数 ''' string_number1 = st... -
十进制小数转为二进制
2015-01-16 12:01:37十进制数转换为二进制的大家都清楚了,那么带小数的十进制如何转换为二进制?整数部分当然和十进制整数转换方式一样,也就是说小数部分如何转化为二进制? 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,... -
python如何将二进制数字转为十进制_python十进制和二进制的转换方法(含浮点数)...
2020-12-07 18:36:04本文介绍了python十进制和二进制的转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下:我终于写完了 , ... pre=4):'''把一个带小数的二进制数n转换成十进制小数点后面保留pre位小数'''string_number1 =... -
VB6.0 中带小数的十进制数如何转换为二进制
2013-01-15 00:04:06各位大虾,本人刚接触VB6.0 ,不知道带小数的十进制数如何转换为二进制,请提供代码以代学习,谢谢! -
python实现浮点数二进制与十进制之间的转换
2020-05-18 14:56:03浮点数二进制与十进制之间的转换 ... 把一个带小数的二进制数n转换成十进制 小数点后面保留pre位小数 ''' # number1 表示二进制数,number2表示十进制数 string_number1=str(n) decimal = 0 # 小数部分 -
HAPPY -1 填空2 Java --- 十进制(带小数)转换为二进制
2018-02-24 20:00:39// 将小数部分转化为二进制 int count = 32; // 限制小数部分位数最多为32位,如果超过32为则抛出异常 double num = 0; while (r > 0.0000000001) { count--; if (count == 0) { throw new Exception("Cannot... -
java十进制转二进制(输入一个十进制数将其转换成二进制)
2019-09-17 21:12:34十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以得到结果。但如果转换的不是一个... -
C语言——带小数点的二进制数转换为十进制数
2013-11-05 22:10:20实现带小数的二进制数到十进制数的转换。二进制字符序列以字符‘#’结尾, 如 “1011.101#”。 将二进制数“1011.101”转换为十进制数。 二进制字符序列中只可能存在‘0’、‘1’、‘.’、‘#’ 4种字符,不会出现... -
python十进制和二进制的转换方法(含浮点数)
2020-12-24 01:27:20把一个带小数的二进制数n转换成十进制 小数点后面保留pre位小数 ''' string_number1 = str(n) #number1 表示二进制数,number2表示十进制数 decimal = 0 #小数部分化成二进制后的值 flag = -
用python将十进制数转换成二进制数_Python-任一十进制数转换为其他进制数
2021-01-13 22:42:11对于任一的十进制数据,可先将其分成整数部分和小数部分。整数部分利用Python自带的bin()函数、oct()函数和hex()函数可直接转换(详见Python-编码规则);小数部分可利用该编程方法(详见Python-十进制的小数部分转换为... -
python十进制和二进制的转换 (含浮点数)
2018-06-07 02:01:00现在是凌晨1点56 今天6月7号 高考 我终于写完了 , 十进制转二进制的小数部分卡了我将近一个小时 上代码 1 #-*- coding: utf-8 ... 5 把一个带小数的二进制数n转换成十进制 6 小数点后面保留pre位小数...
-
All-fiber, high power single-frequency linearly polarized ytterbium-doped fiber amplifier
-
小型蜂窝网络中的分布式载波聚合:一种博弈论方法
-
代管-源码
-
监听器接口
-
awesomium_v1.6.6_sdk_win(markdown).rar
-
Ubuntu 下的 Java 环境配置
-
PHP--简单Demo
-
MySQL 多实例安装 及配置主从复制实验环境
-
合并二叉树
-
C++代码规范和Doxygen根据注释自动生成手册
-
Linux基础入门系列课程
-
深究字符编码的奥秘,与乱码说再见
-
D2D网络中基于社交意识的团购:一种博弈论方法
-
基于语音声学和反向发音信号融合的说话人验证
-
单系统登录机制 VS 多系统登录机制(SSO)
-
基于TAVI的山区毛竹林LAI反演分析
-
再谈球绑定:AWGN信道上二进制线性码性能评估的新仿真方法
-
DHCP 动态主机配置服务(在Linux环境下,配置单网段或跨网段提)
-
揭秘香港房地产,未来中国之我见
-
MHA 高可用 MySQL 架构与 Altas 读写分离