C语言十进制转化为二进制(有方法限制)

C语言如何把十进制转化为二进制,只能用三种基本结构和基本运算,“数组,指针,函数一类的以及更高级的语法均不能用”
同样的要求,十进制转化八进制和十六进制怎么编?
各位高手请指教啊

下列程序在VC++ 6.0环境下调试通过,可以满足要求。

#include "stdafx.h"

void main()

{

 int j;

 int aaa, bbb = 0, ccc = 0;

 printf("请输入一个十进制数:\n");

 scanf("%d", &aaa);

 j = 1;

 while(1) {

  bbb = aaa % 2;

  aaa = (aaa - bbb) / 2;

  ccc = bbb * j + ccc;

  j *= 10;

  if (aaa == 0) break;

 }

 printf("对应的二进制数:\n");

 printf("%08d\n\n", ccc);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-21
“三种基本结构和基本运算”是指什么?哪三种?
第2个回答  2009-11-21
我空间里有个用c++实现的,符合你上面的要求,基本和c一样,除了输入和输出用得c++的,其他都是样的,
如果有不清楚的地方可以加我百度好友,
第3个回答  2009-11-21
int i
i%2
i%8
n=i%16 n>10 就用ABCDEF
第4个回答  2009-11-21
对十进制数以2为底取对数,取上整数,即二进制后的位数。然后从0位到最高位,分别按基数取模填充。
#include<stdio.h>
#include<math.h>
#define BASE 2
int main()
{
int i = 2,k = 0;
char * bin;
int bits = (int)(log10(i)/log10(BASE)) + 1;

bin = (char *)malloc(bits+1);
bin[bits] = '\0';
for(;k<bits;++k)
{
int c = (int)pow(BASE,bits-k-1);
bin[k] = i/c + '0';
i = i%c;
}
puts(bin);
}
BASE可设任意进制

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网