精华内容
下载资源
问答
  • 二进制转换十进制 c语言 输入8位二进制数 输出十进制
  • 你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。 提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。 输入格式: 一个...

    • 级联判断大于时,从高处网下走比如:

         if(num>999){}   //4位数

         else if(num>99){}    //3位数

         else if(num>9){}    //2位数

         else{}   //1位数

    • //测试数据不可大于10位,因为int的表达数范围有限,会溢出

    scanf("%ld",&num);

    cnt++;

    num/=10;    //否则数字0会出错

    while(num>0)
     {

     cnt++;

     num/=10;

     }

    printf("%d",cnt);    

    【题目】

    题目内容:

    对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。


    这里的计算可以用下面的表格来表示:


    数字

    3

    4

    2

    3

    1

    5

    数位

    6

    5

    4

    3

    2

    1

    数字奇偶

    数位奇偶

    奇偶一致

    0

    0

    1

    1

    0

    1

    二进制位值

    32

    16

    8

    4

    2

    1


    你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。


    提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。


    输入格式:

    一个非负整数,整数的范围是[0,1000000]。


    输出格式:

    一个整数,表示计算结果。


    输入样例:

    342315


    输出样例:

    13

    #include <iostream>
    #include <stdio.h> 
    #include <math.h>
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main(int argc, char** argv) {
    	int num,result,tmp1,tmp2;  //输入,结果,临时
    	int dig=1;                 //位数 
    	int bin[20];               //二进制数 
    
    	scanf("%d",&num);
    	if(num==0) result=0;      //特殊情况 
    	
    	while(num>0)
    	{
    		tmp1=num%10;         //最低位 
    		tmp1%=2;             //判断奇偶 
    		tmp2=dig%2;
    		//相同取1,不相同取0
    		if(tmp1==tmp2) bin[dig-1]=1;       
    		else bin[dig-1]=0;
    		//从低到高 
    		num/=10;
    		dig++;
    	}
    	//注意循环结束后dig多1 
    	for(dig--;dig>0;dig--)
    	result=result+bin[dig-1]*pow(2,dig-1);      //二进制转化为十进制
    	
    	printf("%d",result);
    	return 0;
    }





    展开全文
  • c语言二进制转十进制c语言二进制转十进制完整源码 c语言二进制转十进制完整源码 #include <stdio.h> int main() { int remainder, number = 0, decimal_number = 0, temp = 1; printf("\n Enter any binary...

    c语言二进制转十进制

    c语言二进制转十进制完整源码

    #include <stdio.h>
    
    int main()
    {
        int remainder, number = 0, decimal_number = 0, temp = 1;
        printf("\n Enter any binary number= ");
        scanf("%d", &number);
    
        // Iterate over the number until the end.
        while (number > 0)
        {
            remainder = number % 10;
            number = number / 10;
            decimal_number += remainder * temp;
            temp = temp * 2;  // used as power of 2
        }
    
        printf("%d\n", decimal_number);
    }
    
    
    展开全文
  • 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,还有是诗和远方↓↓↓

    展开全文
  • C语言实现二进制转换十进制

    热门讨论 2010-10-26 17:15:43
    一个用C语言实现二进制转十进制的方法,有详细代码说明与源代码,可以直接COPY运行。
  • 4 - 二进制转十进制 给你一个二进制的数,请输出其十进制对应的数字。 原题链接 输入 输入一个二进制的非负整数N,保证在int范围内。 输出 输出转换后的数 样例 输入复制 1011 输出复制 11 输入复制 0 输出...

    4 - 二进制转十进制

    • 给你一个二进制的数,请输出其十进制对应的数字。
    • 原题链接

    输入

    • 输入一个二进制的非负整数N,保证在int范围内。

    输出

    • 输出转换后的数

    样例

    输入复制

    1011
    

    输出复制

    11
    

    输入复制

    0
    

    输出复制

    0
    

    输入复制

    111
    

    输出复制

    7
    

    题解

    #include <stdio.h>
    
    int main(){
    	char ch;
    	int a=0;
    	while(ch=getchar(),ch!='\n')
      		a=a*2+(ch-'0');
    	printf("%d\n",a);;
    	return 0;
    }
    

    十进制转二进制

    #include <stdio.h>
    int main() {
        int i = 0, n, a[32];
        scanf("%d", &n);
        if(n==0){ //只考虑非负整数!!!
        	printf("%d",n);
    	}else{
    		for (i=0; n>0; n /= 2) 
    			a[i++] = n % 2;
        	for (i--; i >= 0; i--) 
    			printf("%d", a[i]);
    	}
    	printf("\n");	
        return 0;
    }
    
    展开全文
  • printf("\n二进制转十进制\n"); printf("输入二进制数:"); while((p=getchar())!='\n') { a[n]=p; n++; } j=n; for(i=0;i;i++) { if(a[i]=='.') { printf("不支持小数。"); towtoten(); ...
  • 主要介绍了纯C语言:递归二进制转十进制源码,有需要的朋友可以参考一下
  • 主要介绍了C语言十进制转二进制代码实例,并且转换后会统计二进制1的个数,实例简单明了,需要的朋友可以参考下
  • //题目:八进制转换为十进制 #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++;...
  • c语言二进制转化为十进制Here you will get program to convert decimal to binary in C. 在这里,您将获得将C中的十进制转换为二进制的程序。 We can convert a decimal number into binary by repeatedly ...
  • #include "iostream" using namespace std; #define MAX 50 int main()//二转十 { cout 请输入二进制数,并以‘$’结束:"; char elem2[MAX]; int flag = 1; char ch; int i = 0; while (flag) {
  • 初学C语言
  • C语言入门者
  • 给出一个十进制的正整数,输出它的二进制表示。 输入 有多行数据,每一行一个正整数,整数值在[1-100000000]之间。 输出 输出相应的二进制数.每一行输出对应每一行输入 样例输入 Copy 3 4 样例输出 Copy 11 100 我...
  • C语言十进制转二进制

    2012-12-04 20:43:07
    整形十进制数据转二进制,用十进制01序列输出
  • C语言十进制转换为二进制C语言十进制转换为二进制完整源码 C语言十进制转换为二进制完整源码 #include <stdio.h> #include <stdlib.h> #define MAXBITS 100 int main() { // input of the user int ...
  • C语言二进制转十进制的技巧性方法

    千次阅读 2017-09-19 21:59:08
    简单的十进制二进制之间的转化就不说了,大家应该都懂,网上也有很多的类似的文章,自己都可以搜到,今天想说的是一种新方法,或许大神们已经知道,但是我还不是很了解,想记录一下这个巧方法。很简洁但很巧妙的...
  • C语言中将二进制转换成十进制 介绍:项目开发中需要用到将二进制转换成十进制之后进行运算,所以自己写了一个转换函数。 代码:`/*//////////////////////////////// *function:将二进制数据转换为十进制 * *value:...
  • C语言实现二进制向八进制和十六进制转换 二进制转换成十进制 再将十进制转换成R进制

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,125
精华内容 450
关键字:

二进制转十进制c语言

c语言 订阅