내가 예를 들어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 개의 BITS 만 인쇄합니다. – Nawaz
'8 '을'sizeof (x)'로 대체하십시오. – 0x499602D2