#C语言学习笔记#进制转换问题

//《C语言综合项目实战》项目三//
//关于进制转换问题,本项目仅由十进制转二进制,和二进制转换十进制入手,通过编写两个函数,分开达到进制转换的效果。
//其他进制转换问题,方法与本项目转换方法类似或相同。
#include<stdio.h>
#include<math.h>//头文件<math.h>,因为本项目使用了pow(a,b)函数。
void shi();//声明一个空类型的函数shi;
void er();//声明一个空类型的函数er;
int main() {
	int a = 0;//声明整形变量a,用于用户选择哪种进制的转换。
	printf("\t1.十进制转换二进制\n");
	printf("\t2.二进制转换十进制\n");
	printf("\t请选择:");
	scanf_s("%d", a);
	switch (a) {//使用switch语句,对用户选择的进制转换进行相应的操作;
	case 1:shi();//用户输入了1,调用函数shi;
	case 2:er();//用户输入了2,调用函数er;
	default:printf("输入错误");//用户输入了其他的数字,导致错误;
	}
}
void shi() {//对函数shi,进行自定义。
	int  b = 0, c=0,e = 1,f=0;//声明整形变量b,c,e,f.
	printf("请输入你要转换的数据:");
	//b用于存储用户所输入需要转换的数据。
	scanf_s("%d", &b);
	while (b > 0) {//使用while循环,进行十进制转换为二进制。          例子:24转换二进制
		c= b % 2;  //c用于存储b除于2的余数。                             2-> 24  -------0
		b = b / 2; //b不断除于2,一步步深入。                            2-> 12---------0
		                                                                 //2->6----------0
		                                                                 //2->3----------1
		                                                                 //2->2----------1    二进制数:11000
		f += c * e;//f用于存储所转换成的二进制数。
		e = e * 10;//e用于将所转换出来的二进制数乘以10,曾加自己的位数。
	}
	printf("%d", f);//将所转换出来的二进制数输出。
}
void er() {//对函数er,进行自定义。
	int a = 0;//声明整形变量a,c,d,f;
	int c = 0, d = 0,f=0;
	//a用于存储用户所输入需要转换的数据。
	//c用于存储a除于10所余的数.
	//d用于存储二进制数转换为十进制的数。
    //f用于二进制数所在的位数进行2的f次方计算。
	printf("请输入你要转换的数据:");
	scanf_s(" %d", &a);
	while (a > 0) {
		c = a % 10;
		a = a / 10;
		d += c * pow(2, f); //因为二进制转换为十进制,是位数的二次方X该位数的值,所以使用pow函数进行运算。
		f++;
	}
	printf("%d", d);//将所转换出来的十进制数输出。
}
//总结:十进制转换为二进制,还可以运用数组进行运算,此项目不予阐述。
//        while使用过程中,出现一些自增运算的错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值