C語言中printf打出2進位制與16進位制數

danxibaoxxx發表於2018-07-31

C語言中,列印16進位制可以使用printf的%x格式。

列印二進位制數並沒有現成的格式數值,只能自行編寫函式列印。

以下是一個列印二進位制值的函式,通過位操作,逐位判斷二進位制值,並輸出對應的值。

預設高位0不輸出。

void print_bin(int n)
{
    int l = sizeof(n)*8;//總位數。
    int i;
    if(i == 0)
    {
         printf("0");
         return;
     }
    for(i = l-1; i >= 0; i --)//略去高位0.
    {
        if(n&(1<<i)) break;
    }
 
    for(;i>=0; i --)
        printf("%d", (n&(1<<i)) != 0);
}

 

相關文章