C++ 输出二进制数

这几天学组成原理,碰到需要输出二进制数的情况,验证a÷(2^n)≠a>>n,我想用高级语言内在的模块实现,程序如下。

bitset后面的<>中的数字,指定输出的位数

#include
#include
using namespace std;

int main()
{
	int a;
	cin>>a;
	cout<(a)<(a/4)<((a>>2))<

如果输入整型-5,
-5÷(2^2)=-1
-5>>2=-2
可以看到结果如下,C语言中数据用补码表示,此处没有显示符号位。-5补码11111011,补码11111111对应-1,补码11111110对应-2。
则得出结论,即便除法采用算术移位,计算机中除以2的n次方,也不能简单地等同于右移2的n次方。
C++ 输出二进制数_第1张图片

你可能感兴趣的:(C++)