Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将此数字转换为c++;?_C++_Bit - Fatal编程技术网

C++ 如何将此数字转换为c++;?

C++ 如何将此数字转换为c++;?,c++,bit,C++,Bit,我希望将0x030C30C3和0x09249249等数字转换为位。我该怎么做 二进制表示可以通过以下方式轻松访问和操作: std::位集变量(0x030C30C3); std::cout如果您想看到一个简单的算法来显示如何进行“转换”,那么这里有一个: #include <iostream> void num2bin(uint32_t num) { uint32_t mask = 1 << 31; for (int i = 0; i < 32; i

我希望将0x030C30C3和0x09249249等数字转换为位。我该怎么做

二进制表示可以通过以下方式轻松访问和操作:

std::位集变量(0x030C30C3);

std::cout如果您想看到一个简单的算法来显示如何进行“转换”,那么这里有一个:

#include <iostream>

void num2bin(uint32_t num)
{
    uint32_t mask = 1 << 31;
    for (int i = 0; i < 32; i++)
    {
        if (num & mask)
            std::cout << 1;
        else
            std::cout << 0;
        mask >>= 1;
    }
}

int main(int argc, char *argv[])
{
    uint32_t num = 0x030C30C3;

    num2bin(num);
}
#包括
void num2bin(uint32\u t num)
{

uint32\u t mask=1“位”是什么意思?你是指二进制吗?什么是“将数字转换为位”意思?你是说二进制?只需使用任何十六进制到二进制的wiki页面,并将该算法转换为c++即可。每个十六进制数字表示一组4位。1=0001…2=0010…F=1111…此页面顶部附近的图表具有完整的集合。问题是位不是1就是0。像你这样的数字需要许多位来表示。它们太复杂了如何将由此获得的二进制位转换回双十进制数?是否可以用这种方法将原来的双十进制数转换成分数?
#include <iostream>

void num2bin(uint32_t num)
{
    uint32_t mask = 1 << 31;
    for (int i = 0; i < 32; i++)
    {
        if (num & mask)
            std::cout << 1;
        else
            std::cout << 0;
        mask >>= 1;
    }
}

int main(int argc, char *argv[])
{
    uint32_t num = 0x030C30C3;

    num2bin(num);
}