简单LinuxC程序关于实现进制转换
2017-07-11 17:05
211 查看
题目: 请编写一个C函数,该函数可以实现将一个整数转为任意进制(2~10,16)的字符串输出
在这个问题中,最主要的点是如何获取每一个位上的值,并将之转化为字符。我使用了取余数的方法,让这个数对相应的进制数取余,然后除以这个进制,由于整型除以整型得到的还是整型,所以这样每一次操作后得到的都是每一位上的值。
接下来就是把数字转化为字符,字符数字与相对应的数字的ASCLL码相差48,即字符0。将数字加上字符0得到的就是相对应的字符数字。在转化16进制时,因为9以后的数字以字母表示,转换时,数字要加上87,即字符a减去10。
C语言中用到这种转化的地方很多,比如将小写字母转化为大写字母,就是小写字母减去32,即('a' - 'A')。我们并不需要刻意去背ASCLL码表,也很难记住。我们只要知道字符的表示原理,就可以轻松实现这些转化。
在这个问题中,最主要的点是如何获取每一个位上的值,并将之转化为字符。我使用了取余数的方法,让这个数对相应的进制数取余,然后除以这个进制,由于整型除以整型得到的还是整型,所以这样每一次操作后得到的都是每一位上的值。
接下来就是把数字转化为字符,字符数字与相对应的数字的ASCLL码相差48,即字符0。将数字加上字符0得到的就是相对应的字符数字。在转化16进制时,因为9以后的数字以字母表示,转换时,数字要加上87,即字符a减去10。
C语言中用到这种转化的地方很多,比如将小写字母转化为大写字母,就是小写字母减去32,即('a' - 'A')。我们并不需要刻意去背ASCLL码表,也很难记住。我们只要知道字符的表示原理,就可以轻松实现这些转化。
#include <stdio.h> #include <string.h> //关于字符数组的函数定义的头文件 int radix (int num ,int n) { char remainder[1000]; int i = 0; int strl; int temp; while (num != 0) { temp = num % n; //获取对应进制每一位的值 if (temp < 10) { remainder[i++] = temp + '0'; //将数字转换为字符数字 num /= n; //一位一位转换 } else { remainder[i++] = temp + 'a' - 10; //16进制时,10以上的数对应ASCII 码要加87,即'a'-10 num /= n; } } remainder[i] = '\0'; //字符串以'\0'结尾 strl = strlen(remainder); printf ("转换后的%d进制结果为:",n); for (i = strl - 1;i >= 0 ;i-- ) { printf ("%c",remainder[i]); //输出时,从后向前输出 } printf ("\n"); return 0; } int main() { int num,n; printf ("input a nuber:"); scanf ("%d",&num); printf ("请选择进制,输入一个2~10或16的数,进制为:"); scanf ("%d",&n); radix (num ,n); return 0; }
相关文章推荐
- 简单LinuxC程序关于任意长整数相加(字符串实现)
- 简单LinuxC程序关于实现识别字符串中合法的帧(字符串输入)
- 简单LinuxC程序关于实现从终端获取一条语句并统计各种字符数量(字符输入输出)
- 球中瑞雪 (Snow Globe) ——关于用程序实现圣诞水晶球的设想
- 关于利用avicap32.dll开发摄像头程序中取景框部分的实现
- 详解IO控制鸣蜂器演奏乐典实现方法(关于“世上只有妈妈好”的单片机音乐演奏程序)
- 关于BASE 24 ,BASE 64原理以及实现程序
- 关于禁止程序重复启动的另一种需要与实现
- FAQ:关于《利用浏览器实现程序界面与实现的分离》
- 关于英语单词单复数转换方法在程序中的实现
- 关于用递归实现遍历系统目录的小程序.(windows下)
- 裸机程序也可以写关于mmu程序,相当于实现操作系统的部分功能
- 自己开发Blog博客程序:关于MetaWeblogAPI 的实现
- 程序实现修改宏安全性设置-关于注册表的操作 (VBA)
- 在单链表的基础上用c++实现的链栈,并使用进制转换,表达式求值两个小程序来测试
- 关于iphone程序代理的实现
- 关于蔡勒公式的程序实现的几点说明
- 关于Windows Mobile手机视听电脑视音频的程序实现(二)
- 【翻译加转载】自己开发Blog博客程序:关于MetaWeblogAPI 的实现
- 关于js实现的Ajax调用,webService,一般处理程序,aspx