写在前面:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
目录
一、C/C++标准库执行
1、字符串转数字
需包含头文件 #include <stdlib.h>
-
double atof(const char *str) :把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。
-
int atoi(const char *str) :把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
-
long int atol(const char *str) :把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型)。
-
double strtod(const char *str, char **endptr) :把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型),并检查结果是否溢出,如果 endptr 不为空,则返回字符串不能转换部分的地址。
-
long int strtol(const char *str, char **endptr, int base) :把参数 str 所指向的字符串转换为一个长整数(类型为 long int 型),并检查结果是否溢出,如果 endptr 不为空,则返回字符串不能转换部分的地址。
-
unsigned long int strtoul(const char *str, char **endptr, int base) :把参数 str 所指向的字符串转换为一个无符号长整数(类型为 unsigned long int 型),并检查结果是否溢出,如果 endptr 不为空,则返回字符串不能转换部分的地址。
2、数字格式化为字符串
需包含头文件 #include <stdio.h>
-
int sprintf(char *str, const char *format, …) :发送格式化输出到字符串 str 中。
-
int snprintf(char *str, size_t size, const char *format, …) :格式字符串并输出 size 个字符长度到 str 中。
两者的唯一区别是 snprintf()函数多了个 size – 拷贝字节数(Bytes),并且给其后添加一个字符串结束符
\0
;除此之外,它们所支持的格式化符号都是一样的;format 标签属性是%[flags][width][.precision][length]specifier
。支持以下格式说明符(specifier):specifier(说明符) 输出 c 字符 d 十进制数 e 使用 e 字符的科学科学记数法(尾数和指数) f 十进制浮点数 o 有符号八进制 s 字符串输出到缓冲区,不转换 x 十六进制数(小写字母) X 十六进制数(大写字母) p 指针地址 % 输出百分比符号,不转换
二、非标实现
先来认识一下进制数的表示方式:
二进制(B,Binary),八进制(O,Octal) 十进制(D,Decimalist),十六进制(H,Hex)
1、十进制数字字符串转数值
2、十六进制数字字符串转数值
3、二、八、十进制间转换,以十进制方式显示
注意:参数 2、3中的进制的基数必须其中一个为基数 10。
4、整形数字转字符串
5、浮点型数字转字符串
三、其他转换
1、大小端之间的转换
大小端的知识可以看:https://blog.csdn.net/qq_42992084/article/details/104957438