精华内容
下载资源
问答
  • 二进制带小数转十进制
    万次阅读 多人点赞
    2019-04-09 19:32:43

    知识点一:一个数的负次方即为这个数的正次方的倒数。

    方法一、转换分数法

    参考文章:https://jingyan.baidu.com/article/597a0643614568312b5243c0.html

    参考文章:https://zhidao.baidu.com/question/1308562360873359899.html

    举例:将 二进制0.1111转换成 十进制数

    二进制            0               .               1                     1                  1                   1 

    ----------------------------------------------------------------------------------------------------------------

    换算次方        2^(0)                     2^(-1)             2^(-2)             2^(-3)           2^(-4)

    ----------------------------------------------------------------------------------------------------------------

    换成分数         0/2                        1/2                 1/4                 1/8               1/16

    ----------------------------------------------------------------------------------------------------------------

    换成十进制      0         +                0.5        +       0.25        +     0.125     +   0.0625    =   0.9375

    更多相关内容
  • 此文档为《十进制小数二进制小数相互转换》,让C++初学者更好的理解进制转换【独家出版,未经允许,禁止侵权】
  • } void two(void)//十进制转二进制 { double f; long n; printf("请输入原数据:"); scanf("%lf",&f); if(f) { printf("-"); f=-f; } n=(long)f;//整数部分 printf("转换成%d进制的小数为:",NUM); integer(n); ...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    #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;

    }

    展开全文
  • 十进制转二进制: (1) 从键盘读入一串字符型数组。通过 “ . ” 判断十进制数是否含有小数位。 (2) 把整数位和小数位进行分离,分别放入data1和data2数组中。通过atof()函数分别把字符型数组data1、data2转为...

    基本思想

    十进制转二进制:

    (1) 从键盘读入一串字符型数组。通过 “ . ” 判断十进制数是否含有小数位。
    (2) 把整数位和小数位进行分离,分别放入data1和data2数组中。通过atof()函数分别把字符型数组data1、data2转为整数。并对整数和小数部分分别进行进制转换。
    (3) 整数部分:根据十进制转二进制的计算特点,声明一个栈,对余数进行存储。
    小数部分:小数*2后的整数部分直接输出。

    二进制转十进制:

    (1) 从键盘读入一串字符型数组。通过“ .”判断二进制数是否含有小数位。
    (2) 把整数位和小数位进行分离,分别放入data1和data2数组中。根据二进制转十进制小数部分和整数部分的计算特点,对其分别进行进制转换。

    #include<bits/stdc++.h>
    using namespace std;
    //十进制转二进制 
    void oTob(char *data){
    	char data1[100];
    	char data2[100];
    	int i;
    	double X;
    	int len1 = strlen(data);
    	for(i = 0;i < len1;i ++){
    		if(data[i] == '.' || data[i] == '\0') break;
    		data1[i] = data[i];
    		}
    		if(data[i] == '.'){
    			i = i + 1;
    			for(int j = 0;i < len1;i ++,j ++){
    				data2[j] = data[i];
    		}
    	}
    	//整数部分
    	int S = atof(data1);//字符型转整数
    	stack<int> q; //栈
    	while(S != 0){
    		q.push(S%2);
    		S = S / 2;
    	} 
    	while(!q.empty()){
    		printf("%d",q.top());
    		q.pop();
    	}
    	//小数部分
    	if(data2[0] != '\0'){
    		X = atof(data2);
    		int len2 = strlen(data2);
    		int j = 0;
    		while(data2[j] != '\0'){
    			X = X / 10;
    			j ++;
    		}
    		printf(".");//小数点 
    		while(1){
    		X = X * 2;
    		int intX = (int)X;
    		printf("%d",intX);
    		X = X - intX;
    		if(X == 0) break;
    		}
    	} 	
    }
    
    void bToo(char *data){
    	char data1[100];
    	char data2[100];
    	int i;
    	int len = strlen(data);
    	for(i = 0;i < len;i ++){
    		if(data[i] == '.' || data[i] == '\0') break;
    		data1[i] = data[i];
    		}
    		if(data[i] == '.'){
    			i = i + 1;
    			for(int j = 0;i < len;i ++,j ++){
    				data2[j] = data[i];
    		}
    	}
    	//整数部分 
    	int len1;
    	int sum = 0;
    	int sum1 = 1;
    	len1 = strlen(data1);
    	sum += data1[len1 - 1] - '0';
    	for(int j = len1 - 2;j >= 0;j --){
    		sum1 = sum1 * 2;
    		sum += (data1[j] - '0') * sum1;
    	}
    	cout << sum;	
    	//小数部分
    	if(data2[0] != '\0'){
    		int len2;
    		sum = 0;
    		sum1 = 1;
    		len2 = strlen(data2);
    		sum += data2[0] - '0';
    		for(int j = 1;j < len2;j ++){
    			sum1 = sum1 * 2;
    			sum += (data2[j] - '0') * sum1;
    		}
    		cout << "." <<sum;
    		}
    } 
    //十进制包含小数转换二进制
    //二进制包含小数转换十进制 
    int main(){
    	char data[100];
    	printf("选择:\n");
    	printf("1 十进制转二进制\n");
    	printf("2 二进制转十进制\n"); 
    	int n;
    	scanf("%d",&n);
    	switch(n){
    		case 1 : 
    			scanf("%s",data);
    			oTob(data);
    		break;
    		case 2:
    			scanf("%s",data);
    			bToo(data);
    		break;
    	}
    	return 0;
    }
    
    展开全文
  • 这篇文章主要介绍了Python实现的十进制小数二进制小数相互转换功能,结合具体实例形式详细分析了二进制十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下本文实例讲述了Python实现的十进制小数...

    这篇文章主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制与十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下

    本文实例讲述了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]

    二进制小数 ⇒ 十进制小数

    小数点后,从左向右,每位分别表示

    3103390f7c270dd1e855fb0550495609-0.jpg

    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

    以上就是Python十进制小数和二进制小数相互转换的实现方式的详细内容,更多请关注php中文网其它相关文章!

    article_wechat2021.jpg?1111

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • 二进制转换成十进制

    2021-01-29 23:57:08
    二进制转换成十进制 #include <cstdio> #include <cmath> int change(long long n)... printf("二进制数%lld转十进制数%d",n,change(n)); return 0; } int change(long long n) { int dN=0,i=0,rN; whi
  • python本身并不适合做数值运算,如果需要数值运算的话,调用python的内置函数会快得多。 把二进制小数先左移到小数点左侧,然后用int()函数转换为整数,最后再除以2的左移位数次方即可。
  • 十进制小数转为二进制小数方法

    千次阅读 2021-09-08 22:16:38
    十进制小数转换为二进制的方法为 十进制小数乘2,取出整数作为二进制小数第一位,余下的小数再乘以2,取出整数作为小数第二位,如此反复,直至余下的小数为0。 例: 十进制 0.375 0.375 * 2 = 0.75 ———— 0 ...
  • 十进制小数转二进制

    万次阅读 多人点赞 2020-03-31 12:50:23
    十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。以0.875为例,具体做法是: 一、取整运算 1、用2乘十进制小数,可以得到积:2*0.875=1.75; 2、将积的整数部分1取出,再用2乘余下的小数部分0.75,又得到...
  • 再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。注1:当一个整数除另一个整数得到整数商而...
  • 带小数二进制转十进制(C代码)

    千次阅读 2018-12-16 20:52:56
    思路:处理带小数二进制转十进制,我们一般可以把它分为两部分,整数部分和小数部分,整数部分二进制转十进制采用逆向累加法,小数二进制转十进制采用正向累加法,然后总体相加即可。 #include&lt;stdio.h&...
  • 十进制小数转换为二进制小数 定义 进制也就是进位计数制,是人为定义的进位的计数方法。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 一、二进制数转换成十进制...
  • 转载:http://blog.xdnice.com/blog40543i59178.htmlmatlab提供了一个系统函数dec2bin,可以用来进行十进制数的二进制转换,不过功能有限!在matlab中键入 help dec2bin,如下:DEC2BIN Convert decimal integer to a ...
  • 十进制转二进制、八进制、十六进制 二进制、八进制、十六进制转十进制 二进制和八进制的互转 二进制和十六进制的互转 使用计算器进行进制换算:打开系统自带计算机,选择程序员。 HEX:16进制 DEC:10进制 OCT:8...
  • 十进制小数如何转换为二进制小数

    千次阅读 多人点赞 2020-03-13 00:58:07
    关于十进制小数转换为二进制数,下面是我的详细操作说明,仅供参考。 纯小数 首先,最高位是符号位,正数是0,负数是1;小数部分乘以2,然后取整数部分,,剩余小数部分继续乘以2,取整数部分,……直到小数部分为0...
  • 十进制转二进制

    2021-06-24 12:40:04
    中文名十进制转二进制外文名Decimal system to binary system适用领域电子、编程、编码应用学科数学十进制转二进制二进制转十进制编辑语音十进制转二进制方法一小数点前或者整数要从右到左用二进制的每个数去乘以2的...
  • 希望做好这个笔记后能够牢牢记住十进制转换为二进制十进制转二进制分为整数转二进制,和小数二进制整数转二进制采用"除2取余,逆序排列"法:1.首先用2整除一个十进制整数,得到一个商和余数2.然后再用2去除得到的...
  • 二进制小数转换为十进制数和

    万次阅读 2017-07-07 13:57:09
    1、二进制小数转换为十进制数 先举一个例子,例如:0.101,第一个1代表的是2的负一次方(0.5),即1*0.5,第二个1代表的是2的负三次方(0.125),即1*0.125,结果为0.5+0.125=0.625,简而言之,每个1乘以其所在位...
  • //取余,进行进制转换,但是顺序与正确值相反 k/=n;//转换一位之后进行相应的变化 } if(m!=(int)m)//选择性计算,如果是整数就不用进行这一步的计算了,这样可以节约程序的运行时间 { d=m-(int)m;//取小数部分 while...
  • #include<stdio.h>#defineN10#defineM100voidfun10_2_Z(longnumber)//十进制整数部分转二进制{charch[M];intlen=0;if(number==0){printf("%d",number);//如果整数部分为零直接输出}else...
  • 小数十进制转二进制        小数点之后用乘2取整法: 如0.5(D) = 0.1(B).        按照如下计算方法: 1. 首先给小数部分乘2,如果小数点...
  • 这里采用如下方法进行实现:首先讲一下形成代码的理论思路:十进制小数转换为其他进制方法(以二进制为例):取小数点后的数乘以2,取整数部分(0或1)标在后面,然后再用乘以2之后的数的小数部分再乘以2,再取其整数...
  • 直接用C语言实现,没有数据结构 需要看栈和队列版的看这里 C语言使用栈和队列实现二进制与十进制的互转(带小数) 代码 #include #include #include /** * 整数部分十进制转二进制 */ void convertIntegerToBinary...
  • 十进制小数转换成二进制的原理理解 浮点数 发布于 2018-03-08 约 2 分钟 十进制小数转换成二进制的原理理解 在学习浮点数据类型的时候,涉及到了10进制的小数如何成2进制数的问题(此文章不讨论精度问题,仅...
  • matlab实现十进制小数转换为二进制

    千次阅读 2021-05-06 07:58:10
    matlab实现十进制小数转换为二进制这段程序源于网上********小于1的小数转换为二进制*********** function y=dectobin(innum,N)%十进制小数转换为二进制数%输入参数为innum和N%innum为输入的十进制小数%N为指定转换...
  • 十进制小数分数与二进制的转换

    万次阅读 多人点赞 2017-01-13 19:37:26
    十进制分数转换为二进制数 使用短除法。 例如将十进制分数11/28转换为二进制数,过程如下: 1、首先将分子分母分别转换成二进制 ...十进制小数转换为二进制小数 十进制数的整数位是二进制数的整数位,...
  • 由于需要,最近写了一个小程序,实现带小数二进制转十进制,先看代码: clc clear all % 整数部分 bit1 = 3; bit_integer = [0,1,0]; % 小数部分 bit2 = 2; bit_decimal = [1,0]; intege...
  • 带小数十进制转换为二进制

    万次阅读 多人点赞 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....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,489
精华内容 13,395
关键字:

二进制带小数转十进制