📅  最后修改于: 2023-12-03 15:29:52.552000             🧑  作者: Mango
在C++中,我们可以用不同的方式来声明和表示二进制数。在本文中,我们将介绍三种不同的方式。
C++11及以上版本支持使用二进制字面值来直接声明二进制数。
int binary1 = 0b1111; // 15
int binary2 = 0B1010; // 10
在上面的代码中,变量 binary1
被赋值为二进制数 0b1111
,等同于十进制数 15
。变量 binary2
被赋值为二进制数 0B1010
,等同于十进制数 10
。注意:在二进制字面值前缀中 b
和 B
是等价的。
类似地,我们也可以使用八进制字面值来声明八进制数。八进制字面值使用前缀 0
。
int octal1 = 017; // 15
int octal2 = 012; // 10
在上面的代码中,变量 octal1
被赋值为八进制数 017
,等同于十进制数 15
。变量 octal2
被赋值为八进制数 012
,等同于十进制数 10
。
最后,我们可以使用位运算符来声明二进制数。
int binary3 = 0b101; // 5
int binary4 = 0b1111; // 15
int binary5 = (1 << 2) | (0 << 1) | (1 << 0); // 5
int binary6 = (1 << 3) | (1 << 2) | (1 << 1) | (1 << 0); // 15
在上面的代码中,变量 binary3
和 binary4
的定义和前面的二进制字面值的例子相同。变量 binary5
的值通过位运算符计算得出。通过将二进制位放置在正确的位置上,并使用按位或(|
)运算符组合它们,我们可以得到我们想要的二进制数。同样地,变量 binary6
的值也是这样计算的。
这是C++中声明和表示二进制数的三种方式。使用二进制字面值或八进制字面值可以使代码更加清晰易读,而使用位运算符则更加灵活。无论使用哪种方式,都应该根据具体情况选择最合适的方法。