C++ 如何将此数字转换为c++;?
我希望将0x030C30C3和0x09249249等数字转换为位。我该怎么做 二进制表示可以通过以下方式轻松访问和操作: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
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);
}