C语言十进制转二进制,程序和流程图,最好有注释,谢了!

如题所述

你赶上好运了,哈哈,我刚也做这个题,刚做好!求采纳哦

 

 

#include<stdio.h>
#include<stdlib.h>
#define max 100

typedef struct
{
 int a[max];
 int top;
} sqstack;

void initstack (sqstack *&s)
{
 s=(sqstack *)malloc(sizeof(sqstack));
 s->top=-1;
}

bool push(sqstack *&s,int e)
{
 if(s->top==max-1)
  return false;
 s->top++;
 s->a[s->top]=e;
 return true;

 
}

bool pop(sqstack *&s,int &e)
{
 if(s->top== -1)
  return false;
 e=s->a[s->top];
 s->top--;
 return true;
}

bool stackemply(sqstack *s)
{
 return(s->top==-1);
}

 

 

 


int main()
{
 int n,m,e;
 sqstack *s;
 initstack (s);
 printf("输入一个数:");
 scanf("%d",&n);
 while(n)
 {
  m=n%2;
  push(s,m);
  n=n/2;
 }
 printf("转化二进制为:");
 while(!stackemply(s))
 {
  pop(s,e);
  printf("%d",e);
 }
 return 0;
}
 

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-22
这个也要别人写就有点懒了,其实10进制转2进制原理非常简单,把十进制数 模 2(也就是小学生都知道的除以2得到的余数),得数倒数放在一个字符数组中,然后把这个数除以2,得数再安装上面的步骤执行,直到这个得数<2,作为第一位就可以,程序如下:
int a;
int i;
char bits[1024];//多一点没关系
scanf("%d",&a);//从键盘输入一个整数,需要正数
i=0;
while(a>0)
{
bit[i]=a%2;
a=a/2;
i++;
}
printf("二进制=");
for(i=i-1;i>=0;i--)//倒序输出
{
bit[i]=bit[i]+0x30;
printf("%c",bit[i]);
}
printf("\n");本回答被提问者采纳
第2个回答  2013-10-22
刚好学递归的看见一个例子#include<iostream>
using namespace std;

void displayInbase(int n,int base)
{
if(n>0)
{displayInbase(n/base,base);
cout<< n%base; }

}
int _tmain(int argc, _TCHAR* argv[])
{
int number;
int base;
cout<<"Input number and base: "<<endl;
cin>>number>>base;
if(base>=2 && base<=10)
{

cout<<" "<<number<<"(base10)=";
displayInbase(number,base);
cout<<" base("<<base<<")"<<endl;
}
else
{
cout<<"The base must be in the range 2<=base<=10 "<<endl;
}
return 0;
}cin cout是输入输出流其他应该没什么不一样,自己改吧

C语言十进制转二进制,程序和流程图,最好有注释,谢了!
这个也要别人写就有点懒了,其实10进制转2进制原理非常简单,把十进制数 模 2(也就是小学生都知道的除以2得到的余数),得数倒数放在一个字符数组中,然后把这个数除以2,得数再安装上面的步骤执行,直到这个得数<2,作为第一位就可以,程序如下:int a;int i;char bits[1024];\/\/多一点没关...

C语言十进制转二进制原理
十进制转二进制的过程,可以通过使用C语言中的库函数itoa实现。itoa函数的基本形式为:char* itoa(int value, char* string, int radix)。这里的参数包括:需要转换的整数值value,用于储存转换结果的字符数组string,以及指定的进制radix。这里,radix可以设置为2、8、10或16等不同的数值。例如,下面的...

c语言十进制转二进制代码
c语言十进制转二进制一般来说就是指在C语言环境下,实现把十进制转换成二进制,也就是属于一种进制的转换,其原理通常是正整数转换成二进制,采用除二取余,然后倒序排列,高位补零的方式。参考范例:十进制转二进制示例代码一 include stdio.h int main(){ int i, n = 0, b[16];scanf(%d, ...

c语言怎么将十进制转化成二进制
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+=...

用C语言分别写出十进制转二进制,二进制转十进制的详细程序
十进制转化为二进制 熟练使用 itoa()库函数 include<stdio.h> include<stdlib.h> int main(){ int num,result;scanf("%d",&num); \/\/输入一个十进制数 char str[20];result = atoi( itoa(num, str, 2) );printf("%d\\n", result);return 0;} 参考资料:http:\/\/zhidao.baidu.com\/que...

c语言实现十进制转换二进制
思路:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。参考代码:...

用C语言把十进制转换成二进制
include<stdio.h> void main(){ int m;int a[20]={0};\/\/初始化数组 int i,j=0;\/\/计数器 scanf("%d",&m);while(m>0){ a[j]=m%2;j++;m=m\/2;} for(i=j;i>=0;i--){ printf("%d",a[i]);\/\/输出二进制 } } ...

c语言,将十进制转化为二进制
1. 位运算符的使用:在C语言中,可以使用位运算符来操作二进制位。通过位运算,我们可以很容易地实现十进制到二进制的转换。2. 转换过程:当我们将一个十进制数除以2时,得到的商和余数可以用于表示原数的二进制形式。具体来说,余数代表了原数的最低位,而商代表了除最低位外的其他位。我们可以...

C语言十进制转二进制
十进制转二进制可以使用库函数itoa。itoa函数原型:char*itoa(int value,char*string,int radix);功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。

用C语言写的十进制数转换为二进制数的程序
;else jinzhi(n\/j,j);printf("%d",n%j);} void main(){ int n,j;printf("输入要转换的数,和要转换的进制范围在2-9之间:)";scanf("%d %d",&n,&j);jinzhi(n,j);printf("\\n")l;}递归算法,可以转换任意2-9之间的进制,如果要就100转换为2进制就输入100空格2就可以了 ...

相似回答