读书人

字符串变换为数字值的函数

发布时间: 2013-01-28 11:49:56 作者: rapoo

字符串转换为数字值的函数
这是 《C primer plus+》 第15章 编程练习题。

编写一个将二进制字符串转化为数字值的函数,也就是说如果有以下语句:
char * pbin = “01001001”;
那么您可以将pbin 作为一个参数传送给该函数,使函数返回一个int值 25.

我没明白,字符串转换后怎么算得的int值为25?我觉得应该是71.
[解决办法]
着急了 结果是 73吧 十六进制的49
[解决办法]
确实是71啊!

strtol(pbin, NULL, 2);
就可以!
[解决办法]

引用:
C/C++ code
?



1234567891011121314151617181920212223242526

#include <stdio.h> #include <stdlib.h> #include <string.h> int invert(const char *,int ); int main(void) { int number; cha……

你理解错了,01001001字符串转成数字为1001001,你的移位是将它的二进制移位,所以会是41!你还是采用从末尾开始计算,向前移动,直到数组下标为-1结束!就可以了。
[解决办法]
没有什么好的办法,逐位取出,是2的i次方,向前移动,直至数组下标为-1就好了
[解决办法]
那是你的程序写错了
int r = 0;
while{*p)
{
r = (r << 1 ) + *p++ - '0';
}

读书人网 >C语言

热点推荐