博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字按照不同格式转换成字符串
阅读量:6800 次
发布时间:2019-06-26

本文共 2564 字,大约阅读时间需要 8 分钟。

  如果自己写函数,不使用itoa怎么判断呢?

  我们用通常的办法,对数字进行每位的除商,得到后与字符'0'相加

flag = 0;        for(i=0;i<6;i++){                        tmp = int(num/pow(10,5-i));            if(tmp != 0){                *str = 1;                flag = 1;            }            if(*str != 0 || flag){                *str++ = tmp+'0';                num = num%int(pow(10,5-i));            }        }

 

  要注意的就是,我们设置标志位flag,为1之前的所有0都不输出。当flag为1时,进行转换。

  全部代码可以参考:

1 #include 
2 #include
3 //蔡健雅 双栖动物 4 int myitoa(int num,char *str,int n); 5 int pow(int num,int n); 6 int main(){ 7 int num = 100; 8 char str[15]; 9 myitoa(100,str,16); 10 printf("number %d binary %s\n",num,str); 11 myitoa(100,str,10); 12 printf("number %d binary %s\n",num,str); 13 myitoa(100,str,8); 14 printf("number %d binary %s\n",num,str); 15 myitoa(100,str,2); 16 printf("number %d binary %s\n",num,str); 17 getchar(); 18 return 0; 19 } 20 int pow(int num,int n){ 21 int i; 22 int result = 1; 23 for(i=0;i
= 0 && tmp <= 9){ 50 *str++ = tmp+'0'; 51 }else if(tmp >= 10 && tmp <= 15){ 52 *str++ = tmp-10+'A'; 53 } 54 num = num%int(pow(16,7-i)); 55 } 56 } 57 break; 58 case 10: 59 flag = 0; 60 for(i=0;i<6;i++){ 61 62 tmp = int(num/pow(10,5-i)); 63 if(tmp != 0){ 64 *str = 1; 65 flag = 1; 66 } 67 if(*str != 0 || flag){ 68 *str++ = tmp+'0'; 69 num = num%int(pow(10,5-i)); 70 } 71 } 72 break; 73 case 2: 74 flag = 0; 75 for(i=0;i<32;i++){ 76 tmp = int(num/pow(2,31-i)); 77 if(tmp != 0){ 78 *str = 1; 79 flag = 1; 80 } 81 if(*str != 0 || flag){ 82 *str++ = tmp+'0'; 83 num = num%int(pow(2,31-i)); 84 } 85 } 86 break; 87 case 8: 88 flag = 0; 89 for(i=0;i<10;i++){ 90 tmp = int(num/pow(8,9-i)); 91 if(tmp != 0){ 92 *str = 1; 93 flag = 1; 94 } 95 if(*str != 0 || flag){ 96 *str++ = tmp+'0'; 97 num = num%int(pow(8,9-i)); 98 } 99 }100 break;101 }102 *str = '\0';103 return 0;104 }

 

  运行结果为:

转载地址:http://tuywl.baihongyu.com/

你可能感兴趣的文章
创建Server 2012 VHDX虚拟磁盘模板
查看>>
IE调试网页之五:使用 F12 开发人员工具调试 JavaScript 错误 (Windows)
查看>>
《kali linux 渗透测试初级教程》免费下载
查看>>
[Oracle]PDB Clone 方法
查看>>
JavaScript词法作用域与调用对象
查看>>
Python天天美味(10) - 除法小技巧
查看>>
模板方法在Spring事务中的应用
查看>>
Ext.LoadMask遮罩的效果几种实现方式
查看>>
理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
查看>>
各个JAVA场景下的内存图
查看>>
用GMF生成简化的数据库设计器
查看>>
【干货】程序员常访问的国外技术交流网站汇总
查看>>
HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
查看>>
Java直接内存与非直接内存性能测试
查看>>
linux watchdog demo hacking
查看>>
[LintCode] 最长上升子序列
查看>>
TP v5中Request取值方式变化
查看>>
日志分析系统——Hangout源码学习
查看>>
第 4 章 Windows Server
查看>>
网站平台架构演变史(三) - 数据库表的查询优化
查看>>