好久没有登录CSDN了,前一段时间都在忙着刷题,听宣讲,面试,找工作,现在终于告一段落,工作也签好了,只是要开始学习新的语言了,嵌入式c,一直没有接触过这方面的东西,,现在先从c语言学习。这个程序是进制的转换函数,看着同好的,就编写了一下。
头文件;
#ifndef CONVERT_H_
#define CONVERT_H_
void convert(char *p_output, int p_input, int number_digital);
#endif
资源文件:
/**************************
函数名:convert()
形式参数:字符数组p_output(输出转换后的进制数),输入进制数 p_input,要转换成的进制
功能: 进制转换
****************************/
#include<string.h>
#include "convert.h"
#pragma warning(disable:4996)
void convert(char *p_output, int p_input, int number_digital){
char bit[] = { "0123456789ABCDEF" };
int len;
if (p_input == 0){
strcpy(p_output, "");
return;
}
convert(p_output, p_input / number_digital, number_digital);
len = strlen(p_output);
p_output[len] = bit[p_input%number_digital];
p_output[len + 1] = '\0';
}
源文件:
#include<stdio.h>
#include<stdlib.h>
#include "convert.h"
#pragma warning(disable:4996)
int main(){
char out_str[80];
int p_input, number_digital, choose = 0;
while (1){
printf("1:十进制转换成其他进制 2:十六进制转化为其他进制 3:退出!\n");
scanf("%d", &choose);
getchar();
if (choose == 1){
printf("输入十进制数:");
scanf("%d", &p_input);
printf("输入转换进制:");
scanf("%d", &number_digital);
convert(out_str, p_input, number_digital);
printf("%s\n", out_str);
}
if (choose == 2){
printf("输入十六进制数:");
scanf("%x", &p_input);
printf("输入转换进制:");
scanf("%d", &number_digital);
convert(out_str, p_input, number_digital);
printf("%s\n", out_str);
}
if (choose == 3){
break;
}
}
system("pause");
return 0;
}