我需要处理一个二进制数。
我试着写:
const char x = 00010000;
但这并没有起作用。
我知道我可以使用与00010000值相同的十六进制数,但我想知道在c++中是否有用于二进制数的类型,如果没有,是否有其他解决方案?
我需要处理一个二进制数。
我试着写:
const char x = 00010000;
但这并没有起作用。
我知道我可以使用与00010000值相同的十六进制数,但我想知道在c++中是否有用于二进制数的类型,如果没有,是否有其他解决方案?
当前回答
用法:二进制(00010001);
int二进制(int a){ Int b = 0;
for (int i = 0;i < 8;i++){
b += a % 10 << i;
a = a / 10;
}
return b;
}
其他回答
C语言没有用于纯二进制数的原生表示法。这里最好是八进制(例如07777)或十六进制(例如0xfff)。
c++提供了一个名为std::bitset的标准模板。如果你喜欢,可以试试。
从c++ 14开始,你可以使用二进制字面值,现在它们是语言的一部分:
unsigned char a = 0b00110011;
下面是我的函数没有添加Boost库:
用法: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;
}
如果你正在使用GCC,那么你可以使用GCC扩展(包含在c++ 14标准中):
int x = 0b00010000;