数字按照不同格式转换成字符串
时间:2022-04-22
本文章向大家介绍数字按照不同格式转换成字符串,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如果自己写函数,不使用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 <stdio.h>
2 #include <stdlib.h>
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 %sn",num,str);
11 myitoa(100,str,10);
12 printf("number %d binary %sn",num,str);
13 myitoa(100,str,8);
14 printf("number %d binary %sn",num,str);
15 myitoa(100,str,2);
16 printf("number %d binary %sn",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<n;i++){
24 result *= num;
25 }
26 return result;
27 }
28 int myitoa(int num,char *str,int n){
29 if(str == NULL)
30 return -1;
31 if(num < 0){
32 *str++ = '-';
33 num = 0 - num;
34 }
35 int i;
36 int tmp = 0;
37 int flag = 0;
38 *str = 0;
39 switch(n){
40 case 16:
41 flag = 0;
42 for(i=0;i<8;i++){
43 tmp = int(num/pow(16,7-i));
44 if(tmp != 0){
45 *str = 1;
46 flag = 1;
47 }
48 if(*str != 0 || flag){
49 if(tmp >= 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 = ' ';
103 return 0;
104 }
运行结果为:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法