如何把16进制字符串转换成相应的16进制数 字符串转换为16进制

今天在某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的22,可以用以下函数来实现

相关函数: atof, atoi, atol, strtod, strtoul

表头文件: #include <stdlib.h>

定义函数: long int strtol(const char *nptr, char **endptr, int base)

函数说明: strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制(字符串以10进制表示),若base值为16则采用16进制(字符串以16进制表示)。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(' ')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。

返回值: 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。

附加说明: ERANGE指定的转换字符串超出合法范围。

将字符串a, b, c 分别采用10, 2, 16进制转换成数字

------------------------------------------------

#include <stdlib.h>

#include <stdio.h>

main()

{

char a[] = "100";
如何把16进制字符串转换成相应的16进制数 字符串转换为16进制

char b[] = "100";

char c[] = "ffff";

printf("a = %dn", strtol(a, NULL, 10)); //100

printf("b = %dn", strtol(b, NULL, 2)); //4

printf("c = %dn", strtol(c, NULL, 16)); //65535

}

"100" ---> 100 (Dec) ---> 100 (Dec)

"100" ---> 100 (BIN) ---> 4 (Dec)

"ffff"---> ffff(Hex) ---> 65535(Dec)

字符串b中的每个字符在内存中都占有一个字节(1 Byte = 8 bits)的空间,将若干个(3个)字节中的内容转换成二进制的数字(字符串"100"去掉双引号后是一个二进制的数字100),让后将该二进制数字以十进制的形式4打印出来

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/61621.html

更多阅读

Excel如何把弧度转换为角度 如何将角度转换成弧度

Excel如何把弧度转换为角度——简介 在Excel中用三角函数计算总是默认为弧度,怎样才能够把弧度转换为角度呢?现在我们就来一起看看。Excel如何把弧度转换为角度——工具/原料Excel软件Excel如何把弧度转换为角度——问题展示:Excel如

如何将图片转换成JPG的图片格式 精 图片转换jpg格式

如何将图片转换成JPG的图片格式 精——简介我相信很多人都会遇到这样的情况,有些电脑只能读取JPG格式的图片,png或者其他格式的图片就读取不了,那么怎么将其他格式的图片转换成JPG的图片格式呢?如何将图片转换成JPG的图

如何把照片变成油画 如何把照片变成卡通图

如何把照片变成油画——简介把自己拍的风景照片变成油画是不是感觉太有意思,那么要怎么转换成油画呢?如何把照片变成油画——工具/原料ps如何把照片变成油画——方法/步骤如何把照片变成油画 1、首先用ps打开我们要修改的照片如何

声明:《如何把16进制字符串转换成相应的16进制数 字符串转换为16进制》为网友凌乱美分享!如侵犯到您的合法权益请联系我们删除