1. 程式人生 > >C語言 將int型資料以二進位制形式輸出

C語言 將int型資料以二進位制形式輸出

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    printf("N=");
    int n,i;
    scanf("%d",&n);
    int len=sizeof(int)*8;   //int型所佔資料寬度
    
    for(i=0;i<len;i++)
    {    

        putchar('0'+((unsigned)(n<<i)>>(len-1)));    //先左移,再邏輯右移,就把二進位制從高位到低位輸出了

// printf("%d",((unsigned)(n<<i)>>(len-1)));  //也可以這樣輸出

    }
    printf("\n%d\n",n);

    //Another method
    for(i=0;i<len;i++)
    {
        putchar('0'+((unsigned)(n&(1<<(len-1)))>>len-1));  //將1左移,然後和n做按位與運算,最後邏輯右移,從高位到低位輸出二進位制
        n<<=1;  //上邊的一句總是對最高位進行處理,所以,這裡就對n左移一位嘍
    }
    printf("\n%d\n",n);
}