C语言 将十进制数转化为二进制数 程序代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 将十进制数转化为二进制数 程序代码相关的知识,希望对你有一定的参考价值。

简单的最好,目前只学过数组和简单的语句,刚入门不久

#include <stdio.h>

void main()

int a;
scanf(\"%d\",&a);//输入一个10进制数。

int result=0;//存储a的二进制结果。
int p=1;//p=1表示个位数

do

int b=a%2;//b是余数,第一个余数是二进制的个位。
result=result+p*b;
p=p*10;//*10表示下个是10位数。
a=a/2;
while(a);

printf(\"\\n%d\\n\",result);


程序在vc6.0下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。
参考技术A main()

int i=0,m=-1,j,k,num;
int a[100];
printf("input a number:\n");
scanf("%d",&num);
while(num!=0)
j=num%2;k=num/2;
a[i]=j;num=k;
m++;i++;

for(;m>=0;m--)
printf("%d",a[m]);

初学,共同进步



(C++)除基取余法:将十进制数转化为Q进制数

所谓基,就是指将要转换成的进制Q。
除基取余的意思就是:每次将待转换数除以Q,然后将得到的余数作为低位存储,而商则继续除以Q并重复上面的操作,直至商0时,将所有位从高到低输出就可以得到Q进制数。

代码实现如下
输入:十进制数x以及进制Q
输出:Q进制数y

#include<cstdio>

int main(){
	int x,y[20]={0},Q;	
	scanf("%d %d",&x,&Q);
	
//	100 -> 8:100%8 = 4  100/8 = 12 12%8 = 4  12/8 = 1  1%8 = 1   144 = 1*64+4*8+4*1 = 100

	int idx = 0;
	do{
		y[idx++]=x%Q;
		x/=Q;
	}while(x!=0);
	
	for(int i=idx-1;i>=0;i--){
		printf("%d",y[i]);
	}
	
	return 0;

}

示例
在这里插入图片描述

以上是关于C语言 将十进制数转化为二进制数 程序代码的主要内容,如果未能解决你的问题,请参考以下文章

用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢

将10进制数转化为2进制的C语言程序

求 C语言程序 将16进制数,例如“0x00,0xff,0x3f”之类的数,转化为2进制数,急急急!!!

c语言中如何将10进制的浮点数转化为16进制数

请教QT中怎么实现10进制数转换为16进制数 最好有代码

c语言编写一程序,以字符串形式输入十进制数,将字符串对应的十进制数转换成二进制数,将得到的结果输出。