此刻我有腳本,打印出的數值爲比特因此,例如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