4

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

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

4 回答 4

7

std::stoi (C++11 起):

int x = std::stoi("0010011110", nullptr, 2);
于 2013-01-18T02:50:49.967 回答
1

您可以strtol用来解析以 2 为底的整数:

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

这是ideone 上演示的链接

于 2013-01-18T02:45:54.533 回答
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);
于 2013-01-18T02:54:52.010 回答
0

atoi或更好的 strtol

long x = strtol("0010011110",nullptr, 2);
于 2013-01-18T02:46:48.917 回答