精华内容
下载资源
问答
  • 十进制整数转换二进制采用“除2倒取余”,十进制小数转换二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,135除以2,得余数,直到不能整除,然后再余数从下至上倒取。得到结果:1000 ...

    1.十进制转R进制

    1.1 十进制转二进制

    十进制整数转二进制

    十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。

    例题: 135D = ______ B

    **解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
    这里写图片描述

    图1.十进制整数转二进制

    十进制小数转二进制

    十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。

    具体做法是:

    用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    例题: 0.68D = ______ B(精确到小数点后5位)

    **解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.

    在这里插入图片描述

    图2.十进制小数转二进制

    1.2 十进制转八进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 10.68D = ______ Q(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.

    这里写图片描述

    图3.十进制转八进制

    1.3 十进制转十六进制

    思路和十进制转二进制一样,参考如下例题:

    例题: 25.68D = ______ H(精确到小数点后3位)

    **解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.

    这里写图片描述

    图4.十进制转十六进制
    # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)

    例题: 1001 0110B = ______ D

    **解析:**如下图所示。得到结果:150D.

    这里写图片描述

    图5.二进制转十进制

    2.2 八进制转十进制

    八进制转十进制的方法和二进制转十进制一样。

    例题: 26Q = ______ D

    **解析:**如下图所示。得到结果:22D.

    这里写图片描述

    图6.八进制转十进制

    2.3 十六进制转十进制

    例题: 23daH = ______ D

    **解析:**如下图所示。得到结果:9178D.

    这里写图片描述

    图7.十六进制转十进制

    3.二进制转八进制

    二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。

    例题: 1010 0100B = ____Q

    **解析:**计算过程如下图所示。得到结果:244Q.

    这里写图片描述

    图8.二进制转八进制

    4.二进制转十六进制

    二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。

    例题: 1010 0100B = ____H

    **解析:**计算过程如下图所示。得到结果:a4H.

    这里写图片描述

    图9.二进制转十六进制

    5.工欲善其事,必先利其器

    下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:

    11111111B
    1286432168421D

    注:B:二进制
           D:十进制


    例题: 135D = ______ B

    **解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
    135D = 128D + 7D = 1000 0111B

    展开全文
  • C语言算法之将十进制转换二进制

    万次阅读 多人点赞 2018-06-20 14:35:29
    导语:在C语言中没有其他进制的数直接输出为二进制数的工具或方法,输出八进制数可以用%o,输出十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制转换二进制数...

    导语:在C语言中没有将其他进制的数直接输出为二进制数的工具或方法,输出为八进制数可以用%o,输出为十六进制可以用%x,输出为二进制就要我们自行解决了。下面给大家讲述一下如何编程实现将十进制数转换成二进制数。

    原文的实现方式太年轻了,是我大一的时候写的。由于太多小伙伴被『溢出』困扰(在溢出的情况下原文的实现就不灵了),补充下面这种最佳的实现方式。

    最佳的方式是利用栈先进后出的特性,计算每一位(0或1)压入栈中,再将所有元素出栈得到的01串就是目标二进制数。以下为C++实现代码,想用C语言实现的可以进行相应的改造,用数组实现一个栈,用字符数组实现字符串。

    #include <iostream>
    #include <stack>
    
    using namespace std;
    
    string transfer(int x) {
        if (x == 0) {
            return "0";
        }
        string ret;
        stack<char> st;
        while (x > 0) {
            if (x % 2 == 1) {
                st.push('1');
            } else {
                st.push('0');
            }
            x /= 2;
        }
        while (!st.empty()) {
            ret.push_back(st.top());
            st.pop();
        }
        return ret;
    }
    
    int main() {
        int x;
        cin >> x;
        cout << transfer(x) << endl;
        return 0;
    }

    下面是大一时候的实现,没有考虑溢出的问题,对于不懂栈的同学可以看一下。

    先将源代码展示给大家:

    #include <stdio.h>
    void main()
    {
        //进制转换函数的声明
        int transfer(int x);
        int x;
        printf("请输入一个十进制数:");
        scanf("%d",&x);
        printf("转换成二进制数是:%d\n",transfer(x));
    }
    int transfer(int x)
    {
        int p=1,y=0,yushu;
        while(1)
        {
            yushu=x%2;
            x/=2;
            y+=yushu*p;
            p*=10;
            if(x<2)
            {
                y+=x*p;
                break;
            }
        }
        return y;
    }

    具体算法体现在函数体内,使用了一个while(1)的死循环,当结果产生后跳出循环。变量yushu是每一次循环内产生的余数,变量x每次循环都会被赋予新的值,这个新的值就是每一次循环内产生的商。当产生的商小于2时即产生了最后的结果(二进制数),然后跳出循环。

    例如:函数自变量若为7,用自变量7除以2,得到第一次循环产生的余数为1,第一次循环产生的商为3;用第一次循环产生的商3除以2,得到第二次循环产生的余数为1,第二次循环产生的商为1。

    变量y的存放也是有一定技巧的,由于每次产生的余数都小于2并且都是最后二进制数中需要按位展现出来的,因此每一次循环产生的余数都要合理地进行存放。第一次产生的余数放在个位,第二次产生的余数放在十位,第三次产生的余数放在百位......依次类推,直至某一次循环产生的商小于2,最后再把小于2的那个商放在最高位。变量p的作用就是控制位数,变量y的初始值定为0,变量p的初始值定为1,每次循环内变量p都自乘10,每次循环内都让变量y加上yushu*p,这样就实现了余数的按位存放。最后将小于2的那个商乘以p加到变量y中,得到最后的二进制数。

    例如:还是以自变量7为例,第一次循环后y的值为1,第二次循环内if语句之前y的值为11,if语句内y的值变为111,111即为7的二进制数。

    注意:变量p的自乘要放在变量y加上yushu*p之后!顺序不能颠倒!

    欢迎大家关注/订阅我的微信公众号Code Art Online,我会在我的公众号分享个人见闻,发现生活趣味;这里不仅有0和1,还有是诗和远方↓↓↓

    展开全文
  • 十进制转换为十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下: #include<iostream> #include<string> using namespace std; int main() { ...

    十进制转换为十六进制,也就是 采用 除k取余法 ,直接让10处以16,再对 数据如果小于10和大于10进行处理,代码如下:

     

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	long a;//输入的数
    	int y=0;//循环中的余数
    	string s="";//输出的结果
    	cin>>a;
    	if(a==0)//0比较特殊,单独处理
    	{
    	cout<<0;
    	return 0;
    	}
     
    	while(a>0)//大于0的数
    	{
    		y=a%16;  //求余
    		if(y<10)   //小于10的余数
    		s=char('0'+y)+s;  //利用字符的ascll码在字符串前面拼接
    		else
    		s=char('A'-10+y)+s;  //大于9的余数用ABCDE表示
    		a=a/16;   
    	}
    	cout<<s;
    	return 0;
    }

     

    十六进制转换为10进制,采取的是 乘以16

    #include<iostream>  
    #include<string>  
    #include<math.h>  
    using namespace std;  
      
    int main()  
    {  
        string s;  
        int i=0,count,sum;  
        while(getline(cin,s))  
        {  
            int count=s.length();  
            sum=0;  
            for(i=count-1;i>=0;i--)//从十六进制个位开始,每位都转换成十进制  
            {  
                if(s[i]>='0'&&s[i]<='9')//数字字符的转换  
                {  
                    sum+=(s[i]-48)*pow(16,count-i-1);  
                }  
                else if(s[i]>='A'&&s[i]<='F')//字母字符的转换  
                {  
                    sum+=(s[i]-55)*pow(16,count-i-1);  
                }  
            }  
            cout<<sum;  
        }  
    }  

     

    十进制 转换为 二进制,采取的是 除2取余法,其中把 2 换成其他小于10的数,可以变成相应的 其他进制

     

    #include<iostream>
    
    using namespace std;
    
    int main(){
    	int a;
    	cin>>a;
    	int result=0;
    	int temp=a;
    	int j=1;
    	while(temp){
    		result=result+j*(temp%2);
    		temp=temp/2;
    		j=j*10;
    	}
    	
    	cout<<result<<endl;
    	
    	
    	return 0;
    } 

     

    展开全文
  • //题目:八进制转换为十进制 #include<stdio.h> #include<math.h> int main() { int i=0,n,tmp,sum=0; scanf("%d",&n); while(n) { tmp=n%10; n=n/10; sum+=tmp*pow(8,i); i++;...

    基本思想: 八进制转十进制,二进制转十进制都一样的道理

    在这里插入图片描述

    八进制 --> 十进制

    //【程序48】
    //题目:八进制-->十进制
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int i=0,n,tmp,sum=0;
    	scanf("%d",&n);
    	while(n)
    	{
    		tmp=n%10;
    		n=n/10;
    		sum+=tmp*pow(8,i);
    		i++;
    	}
    	printf("%d",sum);
    	return 0;
    }
    

    二进制 --> 十进制

    #include<stdio.h> //二进制-->十进制
    #include<math.h>
    int main()
    {
    	int i=0,n,tmp,sum=0;
    	scanf("%d",&n);
    	while(n)
    	{
    		tmp=n%10;
    		n=n/10;
    		sum+=tmp*pow(2,i);
    		i++;
    	}
    	printf("%d",sum);
    	return 0;
    }
    

    十进制 --> 二进制

    #include<stdio.h>  //十进制-->二进制 
    int main()
    {
    	int i=0,n,str[15];
    	scanf("%d",&n);
    	while(n)
    	{
    		str[i]=n%2;
    		n=n/2;
    		i++;
    	} 
    	for(int j=i-1;j>=0;j--)
    		printf("%d",str[j]);
    	return 0;
    }
    

    十进制 --> 八进制

    #include<stdio.h>  //十进制-->八进制 
    int main()
    {
    	int i=0,n,str[15];
    	scanf("%d",&n);
    	while(n)
    	{
    		str[i]=n%8;
    		n=n/8;
    		i++;
    	} 
    	for(int j=i-1;j>=0;j--)
    		printf("%d",str[j]);
    	return 0;
    }
    

    十六进制 --> 十进制

    #include<stdio.h> //十六进制-->十进制 eg. (十六进制)AB-->171(十进制) 
    #include<math.h>                                  //ABCD-->43981
    int main()
    {
    	int i,j,k=0;
    	long int sum=0,tmp;
    	char str[15],a[15]; 
    	gets(str);
    	for(i=0;str[i]!='\0';i++)
    	{
    		if(str[i]>='0'&&str[i]<='9')
    			a[i]=str[i]-'0';
    		if(str[i]>='a'&&str[i]<='z')
    			a[i]=str[i]-'a'+1+9;
    		if(str[i]>='A'&&str[i]<='Z')
    			a[i]=str[i]-'A'+1+9;
    	}
    	for(j=i-1;j>=0;j--)
    	{
    		tmp=a[j]*pow(16,k);
    		sum+=tmp;
    		k++;
    	}
    	printf("%ld",sum);
    	return 0;	
    }
    //#include<stdio.h>         //方法二:参看大佬的解法   
    //int main()                //16-->10进制 
    //{
    //	int num = 0;
    //    printf("输入一个十六进制数: ");
    //    scanf("%x", &num);
    //    printf("十六进制数 %x 转换为十进制为 %d\n", num, num);
    //	return 0;
    //}
    

    十进制 --> 十六进制

    #include<stdio.h>
    int main()
    {
    	int n,i=0,j;
    	char ten[16],str[17]="0123456789ABCDEF";  //10进制-->16进制 
    	scanf("%d",&n);                           //46-->2E; 59-->3B
    	while(n)                                  //46= 2*16^1 + 14*16^0
    	{
    		ten[i++]=str[n%16];
    		n=n/16;
    	}
    	for(j=i-1;j>=0;j--)
    		printf("%c",ten[j]); 
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 将十进制转换为二进制和十六进制

    千次阅读 2017-03-01 18:46:58
    将十进制转换为二进制和十六进制将十进制转换为二进制和十六进制
  • 1将十进制转换为二进制 #include<stdio.h> /* *csdn学院--2016级 *目的:让代码见证成长(作为一个初学的菜鸟,如 *大家有发现错误,欢迎指正!) *文件名称:Myfun203.c *问题描述:用C语言将十进制转换为二...
  • 主要介绍了位运算实现十进制转换为二进制的相关资料,需要的朋友可以参考下
  • 实例007——将十进制转换为二进制输出 实例007——将十进制转换为二进制输出 实例007——将十进制转换为二进制输出 实例007——将十进制转换为二进制输出
  • 介绍了C++ 十进制转换为二进制的实例代码,有需要的朋友可以参考一下
  • Here you will get program to ... 在这里,您获得在C ++中将数字从十进制转换为二进制的程序。 How to convert decimal number to binary? 如何十进制数转换为二进制? Divide the number by 2 and sa...
  • 十进制转换为二进制如果使用手工算的话就是处余法,用十进制数除2,余数该位上的二进制数直到商为0为止,除的2的次数越多,得到的二进制数的位置越靠前, Java代码实现:  public static String change(int m){...
  • 通过新建栈、用出栈和入栈将十进制转换二进制
  • 转换器-十进制-二进制 一个将十进制转换为二进制的简单脚本。
  • 十进制转换为二进制代码

    千次阅读 多人点赞 2020-04-07 11:56:19
    十进制转换为二进制代码 十进制转换为二进制: 十进制如何转二进制该数字不断除以2直到商零,然后余数由下至上依次写出,即可得到该数字的二进制表示。 以数字21转化为二进制为例 当商为零时,余数由下...
  • /* * 文件名:二进制转换.c * 功能描述:把10进制数转换为二进制数 * 编写人:王廷云 * 编写日期:2017-1-10 ...#define NR (sizeof(int)*8) // ... // 十进制转换为二进制函数声明 /* 主函数 */ int ...
  • c语言二进制转化十进制Here you will get ... 在这里,您获得C中的十进制转换为二进制的程序。 We can convert a decimal number into binary by repeatedly dividing it by 2 and storing the remainde...
  • 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是N进制,那么: 对于整数部分,从右往左看,第i位的位权等于Ni-1 对于小数部分,恰好相反,要从左...
  • 一个java二进制转换计算器应用程序,将二进制数转换为十进制数,将十进制数转换为二进制数。
  • 问题1:将十进制转换为二进制。 例:输入十进制5 输出二进制0000 0000 0000 0000 0000 0000 0000 0101 问题2:将十进制转换为八进制。 例:输入十进制5 输出八进制0x00000005
  • 一个十进制转换为二进制的小程序,在vc6.0下编译通过,供大家参考
  • 主要介绍了C语言用栈实现十进制转换为二进制的方法,结合实例形式分析了C语言栈的定义及进制转换使用技巧,需要的朋友可以参考下
  • Here you will get python program to convert decimal ... 在这里,您获得将十进制转换为二进制,八进制和十六进制的python程序。 Python provides inbuilt functions for conversion of one number system to a...
  • 1.十进制转换为二进制 #include using namespace std; int main(){  int N;  cout  int aa[20];  cin>>N;  int temp;  temp = N;  int num;  int i=0;  while(temp !=0)  {
  • 超强进制转换工具 二进制 八进制 十进制 十六进制转换
  • 本文介绍了python十进制二进制转换方法(含浮点数),分享给大家,也给自己留个笔记,具体如下: 我终于写完了 , 十进制二进制的小数部分卡了我将近一个小时 上代码 #-*- coding: utf-8 from decimal ...
  • 进制转换器 对于十进制 十六进制 和二进制等进制进行相互转换 操作简单界面简介
  • 循环的十进制转换为二进制,方便读者学习参考。
  • labview 十进制转换为二进制,比较简单的一种方法,还可以用在其他方面
  • 链栈将十进制转换为二进制

    千次阅读 2017-11-08 20:04:15
    一、 实验内容 1. 自己确定结点的数据类型和问题规模...2. 利用链栈实现由十进制二进制转换 二、源代码 #include using namespace std; class Line { private: struct Node { Node*next; int data; }; No

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 254,807
精华内容 101,922
关键字:

怎样将十进制转换为二进制