我必须在C++中进行二进制到十进制的转换。
我知道如何手动完成此操作,但我想知道是否有一个函数可以为我完成此操作。
例如,如果我有一个十进制数,我想把它打印成另一个基数,我只需要使用setbase(base)。
std::cout<<std::setbase(16)<<20; // prints 20 in base 16.除了将二进制转换为十进制之外,还有什么方法可以做到这一点吗?
发布于 2015-06-05 01:22:23
std::string bin("1101");
int dec = std::stoi(bin, nullptr, 2); // dec = 13阅读:stoi
发布于 2016-10-02 22:35:22
您可以将字符串转换为任何编号系统,如二进制、十六进制和十进制表示法。这是使用以下函数完成的:stoi(string variable,nullptr,base)。字符串变量是需要转换的变量。nullptr指向size_t类型的对象,该对象的值由函数设置为字符串变量中数字value.It后的下一个字符的位置可以是空指针。对于二进制16,基可以是2;对于十六进制0,基可以是2,用于自动基检测。注意,stoi函数是在C++11.So中引入的,请确保您的编译器设置正确,并且/或者您的编译器支持C++11.So。请确保您的设置与c++11匹配。
发布于 2019-02-06 22:08:32
//s是字符串形式的二进制数
bitset<32> b(s);
int dec=b.to_ulong();https://stackoverflow.com/questions/22722513
复制相似问题