メモリに表示される数値のバイナリ値を出力

6291 ワード

次の例では、メモリに表示される数値のバイナリ値を出力します.いくつかの知識点に注意してください.
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  000101
     
10
0000  0000  0000  0000  0000  0000  0000  101000