我需要处理一个二进制数。
我尝试写了以下代码:
const char x = 00010000;
但这并没有起作用。
我知道可以使用一个十六进制数,它具有与00010000
相同的值,但我想知道在C++中是否有一种二进制数类型,如果没有,是否有其他解决方案?BOOST_BINARY(00010001);
int BOOST_BINARY(int a){
int b = 0;
for (int i = 0;i < 8;i++){
b += a % 10 << i;
a = a / 10;
}
return b;
}
C++提供了一个名为std::bitset
的标准模板。如果你喜欢,可以试试。
用法:BINARY(00010001);
int BINARY(int a){ int b = 0;
for (int i = 0;i < 8;i++){
b += a % 10 << i;
a = a / 10;
}
return b;
}
bool i[8] = {0,0,1,1,0,1,0,1}
00010000
是八进制吗?(而且你的声明缺少类型。) - Keith Thompsonx
不是十六进制 (A
,B
,C
,D
,E
,F
),在二进制或十六进制数字前面写零不会影响它们中的任何一个,所以选择0b
作为二进制的前缀是否是任意的呢? - Aurelius0b
仅出现在C++14中)。它们旨在保持明确无歧义。 - Keith Thompson