2~16进制间任意进制转换器
Posted qijing-cy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2~16进制间任意进制转换器相关的知识,希望对你有一定的参考价值。
一.程序运行截图(仅列举部分)
正数:
(1)10->8
(连续五次不输入程序会自动结束哦)
(2)10->2
(3)16->10
(4)8->16
负数:
(1)10->2
(2)10->2
(3)8->16
二.扩展功能
1.可以识别正负数并输出,当输出为二进制时会自动将其补为有符号位的八位或十六位。
2.能在2至16所有进制间任意转换;
3输入错误时会报错并让你重新输入;
4.加了一个没卵用的随机数来使最后一句话随机输出。
三.介绍函数及其使用的全局变量对应的功能和作用
(1)radix函数
int radix(int n,char x[],int count) { int i; for(i=0;i<count;i++){ if(n!=2&&n!=3&&n!=4&&n!=5&&n!=6&&n!=7&&n!=8&&n!=9&&n!=10&&n!=11&&n!=12&&n!=13&&n!=14&&n!=15&&n!=16) return 1; if(x[i]>=‘a‘&&x[i]<=‘f‘) x[i]-=87; if(x[i]>=‘0‘&&x[i]<=‘9‘) x[i]-=48; if(x[i]>=n)return 1; } return 0; }
函数功能:判断使用者输入的数和其输入的该数的进制是否匹配。
全局变量:n(存放使用者输入的进制)
x[](逐个字符逐个字符存放使用者输入的数)
count(统计使用者输入数的位数)
(2)luanqibazao函数
int luangqibazao(char x[],int count) { int i,flag; flag=count; for(i=0;i<count;i++){ if(x[i]>=‘a‘&&x[i]<=‘f‘) flag--; if(x[i]>=‘0‘&&x[i]<=‘9‘) flag--; } if(flag==0) return 0; return 1; }
函数功能:判断使用者输入的数是不是一些乱七八糟的东西(如asd、123g、???>之类的)
全局变量:见radix函数中全局变量的介绍。
(3)change_函数
void change_(int n,char b[],int m,int count,int fu) { int i,j,k=0,num,sum=0,d,SUM,lan,len; char c[1001]; for(i=0;b[i]!=‘