c语言编程将十进制转化为2进制可按手工转换规则进行程序转换。
整数占四个字节,每字节8位,共32位。所以,可以定义一个32位的数组来存储转换结果。
循环将整数进行除2取余数,余数存储到数组中。
当整数整除为0时,结束循环
逆序输出数组,得到转换结果
参考代码:
#include
void main()
{
int c[32],i=0,n;
scanf("%d", &n) ; //输入待转换整数n
do {
c[i++]=n%2;
n/=2;
} while(n!=0) ;
for(i--;i>=0;i--)
printf("%d",c[i] );
printf("\n");
}
//do while把for改改
#include
#include
//函数声明
void tenTtwo(int x);
void main()
{
int a;
printf("请输入一个十进制数:");
scanf("%d",&a);
printf("二进制数为");
tenTtwo(a);
}
//函数实现
void tenTtwo(int x)
{
int j=0;
int d[1000]; //暂时分配1000块空间
int num=0; //用于计数 判断用户所需要多少长度的二进制数
//短除法 将余数放置于数组中
do
{
d[j]=(x%2);//余数
x=(x/2);
j++;
num++;
}while(x!=1);
d[num]=1; //最后一个数为1
/*
for(j=0;j<1000;j++)
{
d[j]=(x%2); //余数
x=(x/2);
if(x==1) //最后一个数
{
d[j+1]=1;
break;
}
num++;
}*/
//num++;
//逆向输出数组中的数据拼接成二进制数
for(j=num;j>=0;j--)
printf("%d",d[j]);
printf("\n");
}
#include "stdio.h"
#define StackSize 100
typedef int ElemType;
typedef struct {
ElemType elem[StackSize];
int top;
}SqStack;
InitStack(SqStack *pS)
{
pS->top=0; /* top指向栈顶的上一个元素 */
}
int Push(SqStack *pS,ElemType e)
{
if (pS->top==StackSize-1) /* 栈满 */
return 0;
pS->elem[pS->top]=e;
pS->top=pS->top+1;
return 1;
}
int Pop(SqStack *pS,ElemType *pe)
{
if (pS->top==0) /* 栈空 */
return 0;
pS->top = pS->top - 1;
*pe = pS->elem[pS->top];
return 1;
}
main()
{
SqStack S;
ElemType e;
int N;
InitStack(&S);
printf("请输入一个十进制整数:\n");
scanf("%d",&N);
do
{
e = N % 2;
Push(&S,e);
N = N/2;
} while(N);
while(Pop(&S,&e))
{
printf("%d",e);
}
printf("\n");
return 0;
}
#include
#include
void main()
{
int iInput = 0;
scanf("%d", &iInput);
int iResult = 0;
int iQuotient = 0; //商
int iRemainder = 0; //余数
int iPlace = 0;
do
{
iRemainder = iInput % 2;
iQuotient = iInput / 2;
iResult += iRemainder * pow((double)10, iPlace);
iPlace++;
iInput = iQuotient;
} while (iInput);
printf("\n结果:%d", iResult);
}
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void dfs(int k){
if(k) dfs(k/2);
if(k) printf("%d",k%2);
}
void main(void){
int n;
printf("Type an integer...\nn=");
scanf("%d",&n);
printf("Binary of %d is ",n);
dfs(n);
printf("\n");
}