首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-01-28 
字符串转换为数字值的函数这是 《C primer plus+》 第15章 编程练习题。编写一个将二进制字符串转化为数字值

字符串转换为数字值的函数
这是 《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';
}

热点排行