使用给定的基数将字符串转换为整数

时间:2013-01-18 02:43:22

标签: c++ integer

以下C++代码行的Java等价物是什么

int x = Integer.parseInt("0010011110", 2);

4 个答案:

答案 0 :(得分:7)

std::stoi(自C ++ 11开始):

int x = std::stoi("0010011110", nullptr, 2);

答案 1 :(得分:1)

您可以使用strtol来解析基数2中的整数:

const char *binStr = "0010011110";
char *endPtr;
int x = strtol(binStr, &endPtr, 2);
cout << x << endl; // prints 158

这是link to a demo on ideone

答案 2 :(得分:1)

strtol包裹为parseInt

#include <stdio.h>
#include <stdlib.h>

int parseInt(const std::string& s, int base) {
    return (int) strtol(s.c_str(), null, base);
}

int x = parseInt("0010011110", 2);

答案 3 :(得分:0)

atoi或更好strtol

long x = strtol("0010011110",nullptr, 2);