メモリに表示される数値のバイナリ値を出力
6291 ワード
次の例では、メモリに表示される数値のバイナリ値を出力します.いくつかの知識点に注意してください.
1.
3.
4.
次に例を示します.
出力結果
1.
sizeof(num)
は、メモリに消費するnum
バイト数を得るために用いる.<<
はバイナリビット左シフト動作である num<<1 -- -- num*2
num<<2 -- -- num*2*2
num<<n -- -- num*2^n(2 n )
3.
>>
はバイナリビット右シフト動作 num>>1 -- -- num/2
num>>2 -- -- num/(2*2)
num>>n -- -- num/2^n(2 n )
4.
&
はバイナリビットと操作であり、任意の数と1ビットとがこの数のバイナリの最低ビットを得ることができる.8 & 1 -- -- 0b1000 & 0b0001
1000
0001
------
0001
1 -- -- 0b0001
次に例を示します.
void printBinary(int num);
int main()
{
int q;
do
{
int num;
printf("
");
scanf("%d",&num);
printBinary(num);
printf(" ,0 !
");
scanf("%d",&q);
}
while(q);
}
//
void printBinary(int num)
{
// sizeof(num)<<3 -- -- sizeof(num)*8
int cnt=(sizeof(num)<<3)-1;
for(int i=cnt;i>=0;i--)
{
// num>>i -- -- num/2^i(2 i )
// (&)
int temp=num>>i;
int b=temp&1;
printf("%d",b);
if(i%4==0)
{
printf(" ");
}
}
printf("
");
}
出力結果
1
0000 0000 0000 0000 0000 0000 0000 0001
,0 !
1
10
0000 0000 0000 0000 0000 0000 0000 1010
,0 !
0