【问题标题】:C++ Binary to DecimalC++ 二进制转十进制
【发布时间】:2021-09-02 00:05:54
【问题描述】:

所以我知道有一种方法可以使用 bitset 库将 Dec 转换为二进制,但是您可以使用 bitset 库将二进制转换为十进制吗?还是您必须手动完成?

bitset<8> bin_x(number);

【问题讨论】:

  • 二进制数的表示形式是什么?您需要使用std::bitset 还是可以使用e。 G。一个字符串(在这种情况下,我建议std::strtol())?
  • 只是一个普通的整数。例如 int x = 1111;如何使用 bitset 库从二进制对应的“1111”输出十进制数“15”

标签: c++ binary bitset


【解决方案1】:

可以,但应该是字符串。

std::bitset<8> bits("1111");
std::cout << bits.to_ulong() << std::endl;

您可以将整数转换为字符串,然后将其传递给bitset c-tor。

Live example

【讨论】:

  • 好的,我在这里遇到了问题,我看到你需要在括号内加上引号才能工作,但是如果我有这样的设置,我该如何运行它? std::bitset bits(BinaryNum);
  • 如果BinaryNum 是char*,或者字符串都可以正常工作。
【解决方案2】:

另一种使用stoi的简单方法(不使用bitset库)

// #include <string>
std::string str = "-10010110001";
int dec = std::stoi(bin, nullptr, 2); // dec = -1201

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 2014-10-30
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2012-04-08
    • 2012-11-09
    相关资源
    最近更新 更多