此刻我有脚本,打印出的数值为比特因此,例如C++位操作如何打印出16,32位
print((short) 1);
我得到的00000001
值,但我怎么能得到这是一个像00000001 00000000
和价值的情况下,如果我打印print((int) 1);
我得到的00000001 00000000 00000000 00000000
值。 这里是我的代码:
void printbyte(unsigned char x)
{
for (int i = 0; i < 8; i++)
{
if (x & 0x80) cout << 1;
else cout << 0;
x = x << 1;
}
cout << endl;
}
template <typename T>
void print (T A)
{
unsigned char *p = (unsigned char *) &A;
printbyte(*p);
}
int main()
{
print((short) 1);
system("pause");
return 0;
}
'printbyte'不能打印'00000001 00000000 00000000 00000000'。它只打印8位。 – Nawaz 2013-05-10 10:43:25
用'sizeof(x)'替换'8'。 – 0x499602D2 2013-05-10 10:45:40