首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

strtol函數的用法

相关函数: 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字符串,跳过前面的空格字符,直到   遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(''\0'')结束   转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的   nptr中的字符指针由endptr返回。 返回值:    返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中   。 附加说明: ERANGE指定的转换字符串超出合法范围。     将字符串a, b, c 分别采用10, 2, 16进制转换成数字 ------------------------------------------------ #include <stdlib.h> #include <stdio.h> main() {      char a[] = "100";      char b[] = "100";      char c[] = "ffff";      printf("a = %d\n", strtol(a, NULL, 10)); //100      printf("b = %d\n", strtol(b, NULL, 2));    //4      printf("c = %d\n", strtol(c, NULL, 16)); //65535 }   "100" ---> 100 (Dec) ---> 100 (Dec) "100" ---> 100 (BIN) ---> 4    (Dec) "ffff"---> ffff(Hex) ---> 65535(Dec)

00

二进制、八进制、十进制、十六进制关系及转换[通俗易懂]

八进制转换成十进制: 这里我就直接上示例了: 十进制48转换位八进制的表示: 计算过程 结果 余数 48/8 6 0 结果为60,这里需要特别注意的是,千万不要受二进制的影响,非要得到结果为1,这里不可能为1,因为进制基数变成了8,所以,48/8得出的结果是6,已经比进制基数8更小了,就没有再计算下去的必要(因为再计算下去就是6/8,结果是0了),于是从结果6开始,倒序排列各步骤的余数,得到的结果就是60(10进制转换成8进制的时候,一旦得到的结果比8更小,则说明是最后一步了)。 十进制360转换为八进制表示: 计算过程 结果 余数 360/8 45 0 45/8 5 5 结果5比进制基数8小,所以结果就是550。 十六进制转换为十进制: 十进制48转换位十六进制的表示: 计算过程 结果 余数 48/16 3 0 十六进制与8进制一样,只要得到的结果比进制基数更小,则停止运算,所以结果是30。 十进制100转换位十六进制的表示: 计算过程 结果 余数 101/16 6 5 结果为:65。

010

如何用正则表达式匹配中文

还是没办法不去在意这个博客, 毕竟付出了自己将近一年的心血, 这是几个周前写的一篇文章, markdown格式写的不是很规范, 望见谅! 分享在此。 前几天因为在做学校教务处的爬虫,用php抓取的成绩和课程表竟然返回的是html格式的数据,也是很醉。没办法,干脆用正则匹配吧。因为之前并没有学过正则表达式,只好恶补了一下。在匹配的过程中遇到了一些问题,特别是在匹配中文的时候,很是蛋疼。下面说一下我的学习成果。 使用php在匹配中文的时候不能使用 \w 来匹配,可以使用元字符 . 来粗略匹配中文 精确匹配中文时需要考虑编码环境,gb2312和 utf-8。这两种编码有什么区别呢 ? 最主要的就是gb2312编码的汉字占两个字节,而utf-8编码的汉字占3个字节。 一、好了,下面进入正题,如果你想匹配中文的话,可以采用下面的表达式: utf-8编码:

02
领券