错误的输出代码

时间:2012-03-07 09:39:29

标签: c++

以下代码给出了错误的二进制输出: 输入是十六进制数,输出应该是二进制数。

总是输出:

0    
0    
0    
0

如何更改它以输出正确的二进制数?

#include <iostream>

using namespace std;

int main ()
{   

int Number;
cin >> Number;
bool Binary[sizeof(int) * CHAR_BIT];

for(unsigned int i = 0; i < sizeof(int) * CHAR_BIT; i++)
    Binary[(sizeof(int) * CHAR_BIT - 1) - i] = Number & (1 << i);

for(unsigned int i = 0; i < sizeof(int); i++)
    std::cout << Binary[i] << std::endl;

system ("pause");

return 0;

}

1 个答案:

答案 0 :(得分:1)

您正在计算它,但只打印sizeof(int)位,而不是所有位。在上一个打印循环中使用i < sizeof(int) * CHAR_BIT

for(unsigned int i = 0; i < sizeof(int) * CHAR_BIT; i++)
    std::cout << Binary[i] << std::endl;