-
2021-05-23 02:08:23
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#define NUM 2
#define ZERO 0.000001
int PrnMainMenu(void);
void ProcessLoop(void);
void two(void);
void ten(void);
int a,b[10],i=0,c=0;
void integer(int n) //定义整数部分
{
if(n>0)
{
integer(n/NUM);
printf("%d",n%NUM);
}
}
void decimal(double m)//定义小数部分
{
if(m>ZERO)
{
m=m*NUM;
printf("%d",(long)m);
decimal(m-(long)m);
}
}
main() /*主函数*/
{
ProcessLoop();
return 0;
}
void ProcessLoop(void)
{
int iChoice;
iChoice = PrnMainMenu();
while (iChoice != 3)
{
switch(iChoice)
{
case 1:
two();
break;
case 2:
ten();
break;
}
system("pause");/*暂停*/
system("cls"); /*_clearscreen(0);清屏 */
iChoice = PrnMainMenu();//返回主菜单
}
return;
}
void two(void)//十进制转二进制
{
double f;
long n;
printf("请输入原数据:");
scanf("%lf",&f);
if(f<0)
{
printf("-");
f=-f;
}
n=(long)f;//整数部分
printf("转换成%d进制的小数为:",NUM);
integer(n);
printf(".");
decimal(f-n);//小数部分的转换
printf("\n");
}
void ten(void)//二进制转十进制
{
printf("请输入原数据\n");
scanf("%d",&a);
while(a!=0)
{
b[i]=a%10;
a/=10;
i++;
}
i--;
for(;i>=0;i--)
c=c*2+b[i];
printf("十进制为:%d\n",c);
}
int PrnMainMenu(void)//主菜单
{
int iChoice;
printf("\n");
printf("----------------菜单-----------------\n");
printf("\n");
printf(" 1:将十进制数转换为二进制数\n");
printf(" 2:将二进制数转换为十进制数\n");
scanf("%d",&iChoice);
return iChoice;
}
更多相关内容 -
Python实现的十进制小数与二进制小数相互转换功能
2020-12-25 02:22:52本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下: 十进制小数 ⇒ 二进制小数 乘2取整 对十进制小数乘2得到的整数部分和小数部分, 整数部分即是相应的二进制数码,... -
Python 利用内置函数把二进制小数转换为十进制
2022-01-22 13:23:02python本身并不适合做数值运算,如果需要数值运算的话,调用python的内置函数会快得多。 把二进制小数先左移到小数点左侧,然后用int()函数转换为整数,最后再除以2的左移位数次方即可。如果需要把一个二进制整数转换为十进制整数,只需要简单的一行:
int('1101',2)
但如果有一个二进制小数的话,就需要自己实现一个函数了。
不过,许多人是这样写的:(图片取自这里)
可是,由于python本身并不适合做数值运算,如果需要数值运算的话,调用python的内置函数会快得多。
可以换一种思路:把二进制小数先左移到小数点左侧,然后用int()函数转换为整数,最后再除以2的左移位数次方即可。代码如下:
def bin_to_dec(b): b1 = b[:b.index('.')] b2 = b[b.index('.')+1:] d1 = int(b1,2) d2 = int(b2,2)/2**(len(b2)) return d1+d2
稍作简化:
def bin_to_dec(b): p = b.index('.') return int(b[:p],2)+int(b[p+1:],2)/2**len(b[p+1:])
-
浅谈十进制小数和二进制小数之间的转换
2021-01-01 11:48:15十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用”除2取余,逆序排列”法... -
python将小数转化为二进制_Python实现的十进制小数与二进制小数相互转换功能
2021-01-29 14:22:01本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数 ⇒ 二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用...本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:
十进制小数 ⇒ 二进制小数
乘2取整
对十进制小数乘2得到的整数部分和小数部分,
整数部分即是相应的二进制数码,
再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。
如此不断重复,直到小数部分为0或达到精度要求为止.
第一次所得到为最高位,最后一次得到为最低位
如:
0.25的二进制
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)
0.8125的二进制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)
def dec2bin(x):
x -= int(x)
bins = []
while x:
x *= 2
bins.append(1 if x>=1. else 0)
x -= int(x)
return bins
print(dec2bin(.8125))
# [1, 1, 0, 1]
二进制小数 ⇒ 十进制小数
小数点后,从左向右,每位分别表示
def bin2dec(b):
d = 0
for i, x in enumerate(b):
d += 2**(-i-1)*x
return d
print(dec2bin(0.8125))
# [1, 1, 0, 1]
print(bin2dec(dec2bin(0.8125)))
# 0.8125
PS:这里再为大家推荐几款计算与转换工具供大家参考使用:
在线任意进制转换工具:http://tools.jb51.net/transcoding/hexconvert
科学计算器在线使用_高级计算器在线计算:http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:http://tools.jb51.net/jisuanqi/jsq
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
-
十进制小数转化为二进制小数
2020-12-17 22:27:28二、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采....一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
例如把二进制数 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代码-code:代码
2021-05-23 14:46:22十进制小数转二进制matlab代码激光转向装置控制程序 1.数字输出代码 63:开启激光 62:激光关闭 61:会话开始---- presentationstatecode:1 60:会话结束----演示状态代码:0 1-59:位置代码 2.工作流程 2.1。 ... -
十进制小数和二进制小数相互转换(C++版)
2019-10-26 23:07:55此文档为《十进制小数和二进制小数相互转换》,让C++初学者更好的理解进制转换【独家出版,未经允许,禁止侵权】 -
二进制十进制小数转换
2021-01-20 13:58:07方法: 十进制的小数转为二进制,...二进制的小数转换为十进制主要是乘以2的负次方,从小数点后开始,依次乘以2的负一次方,2的负二次方,2的负三次方等。 eg: 二进制数0.001转换为十进制。 转载百度 ... -
二进制小数转换为十进制数和
2017-07-07 13:57:091、二进制小数转换为十进制数 先举一个例子,例如:0.101,第一个1代表的是2的负一次方(0.5),即1*0.5,第二个1代表的是2的负三次方(0.125),即1*0.125,结果为0.5+0.125=0.625,简而言之,每个1乘以其所在位... -
二进制小数 转 十进制方法
2019-04-09 19:32:43知识点一:一个数的负次方即为这个数的正次方的倒数。 方法一、转换分数法 参考文章:https://jingyan.baidu.com/article/597a0643614568312b5243c0.html ... 举例:将 二进制0.1111转换成 十进制数 二进制... -
十进制小数化为二进制小数的方法是什么_10、进制转换:二进制、八进制、十六进制、十进制之间的转换...
2020-10-21 18:06:51将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第 i 位的位权等于... -
十进制小数化为二进制小数的方法是什么_十进制转成二进制的两种方式
2020-11-23 21:35:49再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。注1:当一个整数除另一个整数得到整数商而... -
十进制小数转二进制小数类
2011-12-03 15:40:17十进制小数转二进制小数类 /// /// 十进制转二进制 /// /// 指定的数字Double类型 /// 返回转化后的二进制数字 public string DecToBinary(double number) { string value = ""; long izs = (long)number... -
十进制小数如何转换为二进制小数
2020-03-13 00:58:07关于十进制小数转换为二进制数,下面是我的详细操作说明,仅供参考。 纯小数 首先,最高位是符号位,正数是0,负数是1;小数部分乘以2,然后取整数部分,,剩余小数部分继续乘以2,取整数部分,……直到小数部分为0... -
十进制小数转为二进制小数方法
2021-09-08 22:16:38十进制的小数转换为二进制的方法为 十进制小数乘2,取出整数作为二进制小数第一位,余下的小数再乘以2,取出整数作为小数第二位,如此反复,直至余下的小数为0。 例: 十进制 0.375 0.375 * 2 = 0.75 ———— 0 ... -
转:十进制小数转化为二进制小数
2019-04-17 14:18:53转:十进制小数转化为二进制小数 一、二进制数转换成十进制数 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。例1105 把二进制数... -
Python十进制小数和二进制小数相互转换的实现方式
2020-11-26 02:58:22这篇文章主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制与十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下本文实例讲述了Python实现的十进制小数与二... -
十进制小数化为二进制小数的方法是什么_二进制的转换
2020-10-21 18:06:39二进制转换十进制一个二进制数转换为十进制数,是比较简单的,其方法就是用每一个位置上的数字乘以该位置的权重,然后相加得到。举个例子,二进制的1010转换为十进制的话,从其最后面一位0开始,一直往前,其权重... -
新手求教,关于含小数的二进制转换成十进制
2021-05-22 17:50:14//主要是控制小数后面万一出现无限小数的时候好跳出循环以免出现死循环 } } printf("转换结果为:"); if(x) printf("-"); for(j=i-1;j>=0;j--)//反序输出,大于10的数字进行相应的变化 { if(a[j]==10) printf("A"); ... -
用python将十进制小数转换为二进制小数
2021-11-17 22:32:04 -
十进制小数转换为二进制
2020-01-30 10:03:48十进制小数转换为二进制 十进制小数转换方法 十进制小数→→→→→二进制小数 方法:“乘2取整” 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数...