永发信息网

C 语言编程 实现二进制转十进制

答案:4  悬赏:0  手机版
解决时间 2021-04-12 00:51
  • 提问者网友:难遇难求
  • 2021-04-11 20:27
//帮我解释一下下面这个程序
希望大虾、高手们能编个比这个简单些的,谢谢啦!

#include"stdio.h"
main()
{int i,num,bit,sum=0,b=1,j;
unsigned mask=0x8000;
clrscr();
printf("please input a number:");
scanf("%d",&num);
printf("这个数用十进制表示:");
for (i=0;i<16;i++)
{ bit=(mask&num)?1:0;
if (bit==1)
{ b=1;
for (j=0;j<15-i;j++) b*=2;
sum=sum+b;
}
mask=mask>>1;
}
printf("\n%d",sum);
}
最佳答案
  • 五星知识达人网友:迟山
  • 2021-04-11 21:23
#include"stdio.h"
#include"string.h"
#include"math.h"
int main()
{
char a[100];
int i,j=0,k=0;
scanf("%s",a);
for(i=strlen(a)-1;i>=0;i--)
k+=pow(2,j++)*(a[i]-'0');
printf("%d\n",k);
}
全部回答
  • 1楼网友:低音帝王
  • 2021-04-12 00:06
其实上面那个程序已经是简单的了,只是不易理解 我这个通俗一点,用的知识都很简单,看看能用不,我没编译 #include"stdio.h" main() { int num; int n=1; int sum=0; printf("please input a number:"); scanf("%d",&num); printf("这个数用十进制表示:"); while(num!=0) //将2进制转换 { sum=sum+n*num%10; n=n*2; num=num/10; } printf("\n%d",sum); } 你自己看看能用不,主要就是那个while语句
  • 2楼网友:酒者煙囻
  • 2021-04-11 22:28

下面是我编的十进制转二进制程序,请参考,有运行附图

#include<stdio.h> main() {int i=0,x,a[20]; printf("please input a number\n"); scanf("%d",&x); do {a[i++]=x%2; x=x/2; }while(x!=0);

for(i=i-1;i>0;i--) printf("%d",a[i]); printf("\n"); }

  • 3楼网友:煞尾
  • 2021-04-11 21:57
clrscr();其实这句没必要,c语言在程序开始是屏幕就是空的,不必清屏 这段代码是用位运算实现进制转换的,速度比模拟快的多,但对于初学者来说有难度 下面是我的代码c++语言 #include<iostream> using namespace std; int cf(int a,int b)//这是算乘方的函数,返回的结果为a的b次方 { int x=1; for (i=1;i<=b;i++) x*=a; return x; } int main() { char a[100];//用字符数组存储这个数操作方便 int l,i,s=0,t; scanf("%s",a); l=strlen(a);//测量这个数的长度,即位数 for (i=0;i<l;i++) { t=a[i]-'0';//把字符类型的变量转换成整数类型 s+=t+cf(2,l-i-1);//依次累加 } printf("%d\n",s); return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯