字符串变换为数字值的函数
字符串转换为数字值的函数这是 《C primer plus+》 第15章 编程练习题。编写一个将二进制字符串转化为数字值
字符串转换为数字值的函数
这是 《C primer plus+》 第15章 编程练习题。
编写一个将二进制字符串转化为数字值的函数,也就是说如果有以下语句:
char * pbin = “01001001”;
那么您可以将pbin 作为一个参数传送给该函数,使函数返回一个int值 25.
我没明白,字符串转换后怎么算得的int值为25?我觉得应该是71.
[解决办法]
着急了 结果是 73吧 十六进制的49
[解决办法]
确实是71啊!
用
strtol(pbin, NULL, 2);
就可以!
[解决办法]
你理解错了,01001001字符串转成数字为1001001,你的移位是将它的二进制移位,所以会是41!你还是采用从末尾开始计算,向前移动,直到数组下标为-1结束!就可以了。
[解决办法]没有什么好的办法,逐位取出,是2的i次方,向前移动,直至数组下标为-1就好了
[解决办法]那是你的程序写错了
int r = 0;
while{*p)
{
r = (r << 1 ) + *p++ - '0';
}