2022年C任意进制转换程序只是分享.pdf
《2022年C任意进制转换程序只是分享.pdf》由会员分享,可在线阅读,更多相关《2022年C任意进制转换程序只是分享.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 任 意 进 制 转 换 程 序精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 21 页 - - - - - - - - - - C 任意进制转换程序 C 语言写的一个任意进制转换的程序,不使用库提供的转换函数 . / scale.cpp : 定义控制台应用程序的入口点。/ #include stdafx.h #include #include #include #include #include #define WIDTH 10 #define DATAWIDTH 50 #define M
2、AX 4294967295 #define CONST_2 2 #define CONST_3 3 #define CONST_8 8 #define CONST_9 9 #define CONST_10 10 #define CONST_16 16 #define CHAR_0 0 #define CHAR_9 9 #define CHAR_A A #define CHAR_a a 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 21 页 - - - - - - - - - - #defin
3、e CHAR_Z Z #define CHAR_SPACE #define STRING_0 0 #define STRING_Z Z bool Scale(); bool GetSourceScale(int * scale_in); bool GetObjectScale(int * scale_out); double OtherToDeci(int scale_in,char inputdata); void DeciToOther(unsigned long deci,int scale_out,char outputdata); bool GetData(char data,int
4、 CONCOUNT,int flg); bool GetScale(char temp); bool GetSource(int in_scale,char inputdata); void ScaleChange(int scale_in,char inputdata,int scale_out,char outputdata); void CleanScreen(); int _tmain(int argc, _TCHAR* argv) int flg = 0; char csWIDTH; memset(cs,0 x00,sizeof(cs); while(1) printf(-n); p
5、rintf( Data Transform Between Two Scales n); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 21 页 - - - - - - - - - - printf( -n); /*进制转换主函数*/ if(!Scale() break; printf(-n); printf(input any key and press Enter key to continue, Z for exit:); if(!GetData(cs,WIDTH,flg) /*判断是
6、否继续执行下一次转换*/ break; system(cls); /* 清屏 */ return 0; bool Scale() int scale_in,scale_out; char inputdataDATAWIDTH; char outputdataDATAWIDTH; /*输入源数据进制*/ if(!GetSourceScale(&scale_in) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 21 页 - - - - - - - - - - return false; /* 输
7、入源数据 */ if(!GetSource(scale_in,inputdata) return false; /* 输入目标数据进制*/ if(!GetObjectScale(&scale_out) return false; /* 进行进制转换 */ ScaleChange(scale_in,inputdata,scale_out,outputdata); return true; bool GetSourceScale(int * scale_in) /* 输入源数据进制*/ char temparrayWIDTH; memset(temparray,0 x00,sizeof(tempa
8、rray); printf(Input source data scale and press Enter key(one of 2,8,10,16. Z for exit): n); if(!GetScale(temparray) return false; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 21 页 - - - - - - - - - - *scale_in = atoi(temparray); return true; bool GetObjectScale(int * s
9、cale_out) /*输入目标数据进制*/ char temparrayWIDTH; memset(temparray,0 x00,sizeof(temparray); printf(Input object data scale and press Enter key(one of 2,8,10,16. Z for exit): n); if(!GetScale(temparray) return false; *scale_out = atoi(temparray); return true; bool GetData(char data,int CONCOUNT,int flg) /*
10、输入数据*/ int i,icount; char c; char *p; bool spaceFlag; i = 0; icount = 0; spaceFlag = true; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 21 页 - - - - - - - - - - while (c = getchar() != 0 x0a) if (spaceFlag & c = CHAR_SPACE) /*去掉前空格 */ continue; if (!spaceFlag & c = CHAR
11、_SPACE) /*去掉后空格 */ icount+; continue; else if (icount 0) if (flg) CleanScreen(); printf(ERROR! Please input again(Z for exit): n); /*输入进制或者源数据时,中间有空格,则重新输入*/ i = 0; icount = 0; spaceFlag = true; fflush(stdin); continue; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 21 页
12、- - - - - - - - - - else break; if (i = CONCOUNT - 1) /*判断是否输入数据过长*/ if (flg) CleanScreen(); printf(ERROR! Too many characters.Please input again(Z for exit): n); memset(data,0 x00,sizeof(data); fflush(stdin); i = 0; continue; else break; if (c = CHAR_0 & !strcmp(data,STRING_0) 精品资料 - - - 欢迎下载 - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 任意 转换 程序 只是 分享
限制150内