如何将十六进制字符串转换为数字
2010-11-12 23:11
302 查看
主要有两个方法,其实都是对现有函数的使用:
方法1: sscanf()
函数名: sscanf
功 能: 从字符串格式化输入
用 法: int sscanf(char *string, char *format[,argument,...]);
以上的 format 为 %x 就是将字符串格式化为 16 进制数
例子:
#include <stdio.h>
void main()
{
char* p = "0x1a";
int nValude = 0;
sscanf(p, "%x", &nValude);
printf("%d/r/n", nValude);
}
输出:
26
方法2: strtol()
函数名: strtol
功 能: 将字符串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);
上面的base就是我们要转换为几进制数
例子:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char* p = "0x1b";
char* str;
long i = strtol(p, &str, 16);
printf("%d/r/n", i);
}
输出:
27
其实还有一种方法,就是用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值,但这种发发太麻烦了,不推荐使用。
方法1: sscanf()
函数名: sscanf
功 能: 从字符串格式化输入
用 法: int sscanf(char *string, char *format[,argument,...]);
以上的 format 为 %x 就是将字符串格式化为 16 进制数
例子:
#include <stdio.h>
void main()
{
char* p = "0x1a";
int nValude = 0;
sscanf(p, "%x", &nValude);
printf("%d/r/n", nValude);
}
输出:
26
方法2: strtol()
函数名: strtol
功 能: 将字符串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);
上面的base就是我们要转换为几进制数
例子:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char* p = "0x1b";
char* str;
long i = strtol(p, &str, 16);
printf("%d/r/n", i);
}
输出:
27
其实还有一种方法,就是用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值,但这种发发太麻烦了,不推荐使用。
相关文章推荐
- 【原】如何将十六进制字符串转换为数字(数值)
- 如何将十六进制字符串转换为数字
- 如何将十六进制字符串转换为数字(数值)
- 如何把字符串类型转换成数字类型?
- mysql里面如何用sql语句让字符串转换为数字
- C语言将字符串转换成对应的数字(十进制、十六进制)
- VC++中如何将字符串转换成整型数字
- 在delphi中,如何把十进制数转换为十六进制整形数。若用inttohex只能转化为十六进制字符串。
- 使用POI读取Excel时如何把数字转换成字符串
- 如何将字符串转换为十六进制字符串
- C语言中如何将数字转换成字符串?
- 在SQL中如何将十进制的值转换为十六进制的字符串显示出来?
- 如何:在十六进制字符串与数值类型之间转换(C# 编程指南)
- 把一个“十六进制”字符串转换为十六进制数字输出
- Qt(C++)将字符串输入框中的数字字符串转换成十六进制命令的方法。
- 如何将包含数字的NSString字符串转换为整数
- 练习2-3 编写函数 htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f以及A~F。
- VC中,如何将十六进制字符串转换为十进制数?
- 练习2-3 编写函数 htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x 或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f以及A~F。
- 如何在文件中将十六进制字符串转换为字符串