精华内容
下载资源
问答
  • 十进制转换二进制C++

    千次阅读 2021-04-12 21:57:07
    十进制数转换为二进制C++前言一、十进制转换二进制的数学算法二、代码实现1.设计转换函数transfer2.完整代码总结 前言 这篇文章和大家分享一下我个人对十进制数转换为二进制数的想法,目前暂时更新只整数十...
      
    


    前言

    这篇文章和大家分享一下我个人对十进制数转换为二进制数的想法,目前暂时更新只整数十进制的转换,后续会更新带有小数的进制转换。(代码使用c++实现)


    一、十进制转换为二进制的数学算法

    设目标十进制数为n,用短除法一直除以2,循环这个过程并记录余数,当商为0时结束循环,余数从后往前读就是转换为的二进制数

    eg:在这里插入图片描述

    二、代码实现

    1.设计转换函数transfer

    // flag是位数控制器,用remainder来暂时保存每一位余数,y是转换的二进制结果。我们的目标是把流程结束后的余数倒序输出 ,比如13的二进制数1101,但是每次除以2后得到的余数都是个位数,所以我选择使用一个位数控制器flag,从初始值1开始和remainder相乘,然后迭代(每次乘以十)进入下一次除以2的过程,然后每次迭代相加y就能得到二进制数1101(其实这个1101是用十进制显示的),而我们知道,当除数=0时就停止循环,所以我们设置If条件来控制结束
    演示一遍具体的循环流程:

     eg:13(10)----1101(2):
      1. remainder=n%2=1; n=n/2=6; y=y+remainder*flag=0+1*1=1;flag=flag*10=10;
      2. remainder=n%2=0; n=n/2=3; y=y+reminder*flag=1+0*10=1;
    flag=flag*10=100;
      4. remainder=n%2=1; n=n/2=1; y=y+reminder*flag=1+1*100=101;
    flag=flag*10=1000;
      5. remainder=n%2=1; n=n/2=0;y=y+reminder*flag=101+1*1000=1101;
    flag=flag*10=10000;
    此时n=0if(n==0)成立,停止循环,输出y。
    
    int transfer(int n)
    {
        int flag=1,y=0,remainder; 
        while(1)
        {
            remainder=n%2;
            n/=2;
            y+= remainder*flag;
           flag*=10;
            if(n==0)
            {
                break;
            }
        }
        return y;
    }
    

    2.完整代码

    代码如下(示例):

    #include <cstdio>
    #include<iostream>
    using namespace std;
    int a[1000001];
    int main()
    {
    
        int transfer(int n);
        int n,sum=0,y;
        scanf("%d",&n);
        y=transfer(n);
        
        printf("%d\n",y);
        return 0;
    }
    int transfer(int n)
    {
        int flag=1,y=0,remainder;
        while(1)
        {
            remainder=x%2;
            n/=2;
            y+=remainder*flag;
            flag*=10;
            if(n==0)
            {
                break;
            }
        }
        return y;
    }
    
    

    总结

    其实笼统来说,主要的思想就是从位数由低到高,把余数依次乘以1,10,100,1000再加起来就是用十进制的形式表示了转换后的二进制(1101=1乘1+0乘10+1乘100+1乘1000),需要注意的是位数控制器flag的使用。

    展开全文
  • C++实现将十进制转为二进制

    千次阅读 2021-09-04 16:01:20
    "请输入需要转换十进制数:"; cin >> n; int r[100]; int i, j=0; //对十进制数进行除以取余并以此存放到列表中 for ( i = 0;n > 0; i++) { r[i] = n % 2; n = n / 2; j++; } .

     记录学习过程1

    #include<iostream>
    using namespace std;
    int main()
    {
    	int n;
    	cout << "请输入需要转换的十进制数:";
    	cin >> n;
    	int r[100];
    	int i, j=0;
    
        //对十进制数进行除以二取余并以此存放到列表中
    	for ( i = 0;n > 0; i++)
    	{
    		r[i] = n % 2;
    		n = n / 2;
    		j++;
    	}
    
        //依次取出从列表的最后一位到第一位余数
    	cout << "转为二进制为:" ;
    	for (j=j-1;j >= 0; j--)
    	{
    		cout << r[j];
    	}
    	
    	return 0;
    }
    请输入需要转换的十进制数:30
    转为二进制为:11110 
    展开全文
  • 1、用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。...

    1、用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。

    #include <iostream>

    using namespace std;

    int main()

    {

            // 定义一个输入的整型值,一个count数据用于计数二进制的1值

            int a = 0;

            int count = 0;

            cin >> a; 

            while(a > 0)

            {

                    count += a % 2;// 余数为1 ,则二进制那一位为1;余数为0,则二进制那一位为0;

                    a = a / 2;

            }

            cout << count << endl;

            return 0;

    }

    展开全文
  • #include <...int numberbin(int x)//定义函数,求一个整数对应的二进制数的位数 { int n=0; do { x/=2; n++; } while (x); return n; } int main() { int x=0,bin=0,n,y=0; cin>&

    C++:输入1个正整数x(x>0),将其转换为二进制后输出

    为本人的一次上机作业,刚学到函数这块,尤其对新手特别合适,没有数组或超纲内容!

    #include <iostream>
    #include <cmath>
    using namespace std;
    int numberbin(int x)//定义函数,求一个整数对应的二进制数的位数
    {
        int n=0;
        do
        {
            x/=2;
            n++;
        } while (x);
        return n;
        
    }
    int main()
    {
        int x=0,bin=0,n,y=0;
        cin>>x;
        n=numberbin(x);//函数调用
        do
        {
            y=pow(2,n-1);
            bin=x/y%2;
            cout<<bin;
            n--;
        } while (n!=0);
        return 0;
    }
    /*用短除法的话,普遍的做法求出来的顺序会刚好相反,
    就特别想倒序,但由于数组和好多东西暂时没学。
    便想出上面解法,其实也是根据短除法“拼”出来的*/
    第一次发自己写的代码~哈哈哈
    
    展开全文
  • 输入一个二进制数(仅由0和1构成的整数),打印出该数对应的十进制数。 输入 第一行是测试数据的组数n,下面的n行每一行是一个二进制数。 输出 输出为n行,分别为对应输入的十进制数。 样例输入 2 11 110 样例输出 3...
  • C++实现十进制转换

    2021-11-26 14:41:27
    十进制二进制之间的转换方法,其他进制转换和其思路一致,只需更改几个参数 首先介绍十进制变为二进制的转换方法 常用方法:用2整除的方式。 用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和...
  • C++实现读入二进制数并转换十进制输出题目描述已知一个只包含0和1的二进制数,长度不大于10,将其转换十进制并输出。输入描述输入一个二进制整数n,其长度不大于10输出描述输出转换后的十进制数,占一行样例输入...
  • #include <iostream> #include<..." 请输入要转换十进制数字:"<<endl; cin>>x; cout<<" 二进制"<<bitset<8>(x)<<endl; //输出为八位二进制数 cout<
  • cout输入一个十进制数:"; cin>>x; aa=(int)x; if(x-aa==0) {i=0; while(aa){ p[i]=(int)(aa%2); aa=aa/2; i++; } cout转化的二进制数为:"; n=i; for(i=n-1;i>=0;i--) cout[i]; cout; } else {bb=x-aa; i=0; ...
  • 请从键盘读入一个非负整数n(n是一个不超过18位的正整数),将n转换为16进制! 注意:16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数,即逢16进1,...
  • 一个25位以内的二进制正整数 输出 该数对应的十进制 样例输入 题目描述 请将一个25位以内的2进制正整数转换为10进制! 输入 一个25位以内的二进制正整数 输出 该数对应的十进制 样例输入 ...
  • c++进制转换

    2021-07-03 15:40:55
    C/C++各种进制转换库函数 1. 任意2-36进制数转化为10进制数(strtol) #include <bits/stdc++.h> using namespace std; int main(int argc, char** argv) { char buffer[20]="11"; char *stop; int ...
  • #include <iostream> #include <cstdlib> #include <... "如果您要把十进制转换二进制数请输入2,如果您要把二进制转换成十进制数请输入10,如果您要退出请输入0:"; cin >&g.
  • 展开全部代码设计如下:int decToBin(int dec){int result = 0,temp = dec,j = 1;while(temp){result = result + j*...十进制二进制使用方法除二取余法,十进制转k进制的方法常用的就是除e68a8462616964757a68696...
  • #include<iostream> #include<... * 十进制二进制 **/ void dec2bin(double x){ int num1=(int)x; double num2=x-num1; int iter=0; //整数 while(num1>0){ a[iter++]=num1%...
  • 题目 题目描述 请将一个不超过100位的二进制数转换为十六进制数! 输入 一个不超过100位的二进制整数...// 将 4 位的 2 进制转换为 1 位的 16 进制 char num(string s){ // 1101,从最低位开始按权展开,转换为10进制
  • #include#includevoid change2(int num){if (num != 0){change2(num / 2);printf("%d", num % 2);//printf函数在change2函数后,为逆序...printf("请输入要转换十进制数: ");scanf("%d", &num);printf("转换...
  • C++实现十进制数转二进制数程序

    千次阅读 2021-02-18 20:42:52
    C++实现十进制数转二进制数程序 转换方法 十进制的数要转换二进制数,需要把这个数(十进制情况下)除以2,得到余数0或1.然后循环操作,一直到这个数为1为止。 然后把所以得到的余数倒序读数,然后输出。 如29: ...
  • #include <stdio.h> int main(void) { int i,j; int n; int a[32]; scanf("%d",&n); for(i=0;n>0;i++) { a[i]=n%2; n/=2; } for(j=i-1;j>=0;j--) printf("%d",a[j]);...}
  • C++-十进制二进制(matlab-dec2bin函数)

    千次阅读 多人点赞 2021-07-21 16:15:49
    C++代码实现十进制二进制,类似matlab的dec2bin函数
  • //开始转换二进制,%2留下余数 numberList[i] = numberList[i] / 2;// 留下被除数 } number3List[0]=number2List[0]; System.out.println("原码(num2):"); System.out.print(number2List[0]+" "); //最高位为1先...
  • 题目1138:进制转换题目描述:将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。输入:多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)...
  • 二进制转化为十进制 1.从左向右: #include<iostream> using namespace std; #include<string> int binary_int(string str) { int sum = 0,t; for (int i = 0;i < str.size();i++) { t = str[i] -...
  • c实现二进制十进制互转 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef unsigned char uint8_t; typedef unsigned long uint64_t; //计算十进制最高位对应的幂次 ...
  • C语言递归算法将十进制转换二进制C语言递归算法将十进制转换二进制完整源码 C语言递归算法将十进制转换二进制完整源码 #include <assert.h> /** * Decimal to binary using recursion algorithm. * ...
  • C语言十进制二进制代码实例

    千次阅读 2021-05-22 15:39:56
    C语言十进制二进制代码实例用C语言实现将十进制转化为二进制,并统计转换后的二进制码中1的个数。#include int binaryNum[16]; //存放转换后得到的二进制码int count=0; //计数十进制整数被2除的次数int oneCount=...
  • 一、十进制转换二进制: 方法: 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法 具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,...
  • 十进制转换二进制需要注意整型与字符型变量之间的变换 如1+'0' %d输出为49 (即'0' 的ASCII码加一) %c输出为1 (相当与输出字符'1') 上代码: #include<iostream> using namespace std; int main...
  • Java将十进制转换为8位二进制(Java convert from decimal to 8-bit binary)我写了简单的java代码来从十进制转换为8位二进制:抱歉这个愚蠢的问题1 int dec=1;2 String result="";3 String reverse = "";4 while(dec!...
  • //按十进制格式输出,保留3位高位补零 printf("%05x\n",35); //按十六进制格式输出,保留5位高位补零 2.在C++中,按指定进制格式输出如下, #include <bitset> #include<iostream> using namespace ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,620
精华内容 20,648
关键字:

十进制转换二进制c++

c++ 订阅