C实现任意进制数的转化
来源:互联网 发布:网络团购流程 编辑:程序博客网 时间:2024/06/05 21:54
该实例要求使用C实现一个无符号整数到[2,16]进制数的转换。这个还是比较好想的,就是对该无符号整数不断的斤进制数d取余数,取商,一直做这样的运算,直到商为0为止,将所有的余数按照从后往前的顺序穿起来,就是转换后的进制数。
下面上我的代码:
#include <stdio.h>/** 用于声明char数组的长度 **/#define M (sizeof(unsigned int) * 8)int trans(unsigned int m,int d,char s[]);/** * @brief main 将一个无符号整数转换成任意d进制数(2 << d << 16) * @return */int main(void){ /** * 思路:将一个无符号整数m转换成任意d进制数, * 则可以将m除以d,将余数从char数组的最后一位 * 向前保存,同时将商再除以d,以同样的方式进行处理 * 最后得到的数组就是所对应的d进制数 */ unsigned int m; printf("Please enter the digits you want to transform:\n"); scanf("%d",&m); char str[33]; int i = 0; printf("The translate results are:\n"); for(i = 2;i <= 16;i++){ int nums = trans(m,i,str); printf("%d = ",m); int j = 0; for(j = 0;j < nums;j++){ printf("%c",str[j]); } printf("(%d)\n",i); } return 0;}/** * @brief trans 用于对无符号整数转换 * @param m 要被转换的数字 * @param d 要被转换成的进制数 * @param s 存放被转换后的进制数的数组 * @return 返回转换后进制数的长度,也就是数组的长度 */int trans(unsigned int m,int d,char str[]){ if(d < 2 || d > 16){ //将s置为0 str[0] = '\0'; return 0; } /** 用于保存进制数 **/ char digits[] = "0123456789ABCDEF"; int i = M; int j = 0; char buf[M+1]; /** 用于保存商 **/ int s = m; buf[i] = '\0'; //这里使用do...while do{ buf[--i] = digits[s % d]; s = s / d; }while(s); //对数组s进行赋值 for(j = 0;(str[j]=buf[i])!= '\0';j++,i++); return j;}
下面是我的运行结果截图:
0 0
- C实现任意进制数的转化
- 用链栈实现任意进制的转化
- 用堆栈实现任意制度的转化
- 任意进制转化 c(c++)
- 用C实现任意一年的日历
- 任意255以内的十进制数转化为16进制数
- JAVA实现10进制的数转化为任意n进制的数
- 字符数组与任意数字的转化
- 十进制数转化为任意进制数
- C语言中输出函数任意参数的实现
- 任意进制间的转换(用c语言实现)
- C语言下使用ringbuffer实现任意数据类型的FIFO
- hdoj2036 c语言实现(任意多边形的面积
- C语言实现任意大小文件的复制
- C语言下使用ringbuffer实现任意数据类型的FIFO
- 实验C—5 任意十进制数转化为二进制
- 利用递归调用实现十进制转化成任意进制
- 设计一个算法把一个十进制整数转化为二至九进制之间的任意进制数输出
- Vuforia SDK---- AR开发vuforia cylinder Target识别图制作流程
- 探索高效jQuery的奥秘
- eclipse中安装maven插件
- genymotion android模拟器安装教程
- LRU缓存介绍与实现
- C实现任意进制数的转化
- 利用Maven Archetypes创建OpenDaylight yang model项目
- Unity3D坐标
- MFCMainFrm.cpp中Include myView.h的方法
- Discuz! 的编码规范
- 手游录像分享传播实战攻略——《钢琴大师》
- 解决unity3d 4.5 编译ios8 横屏问题
- ubuntu QT报错:Cannot mix incompatible Qt library (version 0x40806) with this library (version 0x40801)
- 不怕不知道,就怕不知道——js转义问题