📜  十进制到二进制预定义函数 - C++ (1)

📅  最后修改于: 2023-12-03 15:22:48.326000             🧑  作者: Mango

十进制到二进制预定义函数 - C++

在编程中,我们需要经常将不同进制的数值进行转换,在一些任务中我们需要将十进制数转换为二进制数。在C++中,我们可以使用预定义函数来实现这个功能。

std::bitset

在C++中,我们可以使用std::bitset预定义类来实现十进制数到二进制数的转换。std::bitset类封装了一个固定大小的位序列,允许我们高效地进行位操作。

使用方法

std::bitset类的使用非常简单,我们只需要在定义时指定位数,并给定初始值即可。例如,以下代码将一个十进制数转换为二进制数并输出。

#include <iostream>
#include <bitset>

int main() {
    int num = 10;
    std::bitset<8> binary(num);
    std::cout << binary << std::endl;
    return 0;
}

输出结果为:

00001010
常用方法

std::bitset类提供了很多常用的方法,例如:

  • to_string():将位序列转换为字符串。
  • set():将指定位置的位设为1。
  • reset():将指定位设为0。
  • flip():将指定位翻转。
  • count():返回当前位序列中1的个数。

例如,以下代码将一个二进制数转换为字符串并输出。

#include <iostream>
#include <bitset>

int main() {
    std::bitset<8> binary("00001010");
    std::string str = binary.to_string();
    std::cout << str << std::endl;
    return 0;
}

输出结果为:

00001010
std::bitset转手写函数

在一些场景中,我们不能使用预定义的函数或类,这时我们需要手写函数来实现十进制数到二进制数的转换。以下是一个将十进制数转换为二进制数的手写函数。

#include <iostream>
#include <string>

int main() {
    int num = 10;
    std::string binary_str = "";
    while (num > 0) {
        if (num % 2 == 0) {
            binary_str = "0" + binary_str;
        } else {
            binary_str = "1" + binary_str;
        }
        num /= 2;
    }
    std::cout << binary_str << std::endl;
    return 0;
}

输出结果为:

1010
总结

使用预定义的函数可以很方便地实现十进制数到二进制数的转换,但在一些场景中我们需要手写函数来实现。无论使用哪种方法,十进制数到二进制数的转换都是非常基础和重要的操作,同学们需要掌握这个知识点。