1. 程式人生 > >將一個字符(char)或者一個整形(int)的二進制形式輸出

將一個字符(char)或者一個整形(int)的二進制形式輸出

正序 inpu %d arr pre return char NPU 余數

要輸出一個數的二進制形式使用位操作 >> 和 &

void putBinary(int number)//將一個int整形數字的二進制形式正序,倒序輸出
{
    int value;
    int i;
    for (i = 31; i >= 0;i--)//正序
    {
        int value = number >> i & 1;
        printf("%d", value);
    }
    printf("\n");

    for (i = 0; i <= 31; i++)//倒序
    {
        
int value = number >> i & 1; printf("%d", value); } printf("\n"); } void putBinary(char c) //將一個字符的二進制形式正序,倒序輸出 { int value; int i; for (i = 7; i >= 0; i--)//正序 { value = (int)c >> i & 1; printf("%d", value); } printf("\n
"); for (i = 0; i <= 7; i++)//倒序 { value = (int)c >> i & 1; printf("%d", value); } printf("\n"); } int main(void) { printf("‘0‘ = %d, A = %d, a = %d\n",0,A,a); printf("‘5‘ - ‘0‘ = %d\n",(int)(5 - 0)); putBinary(0); putBinary(65
); putBinary(97); putBinary(0); putBinary(A); putBinary(a); while (1); return 0; }

一些其他方法

void f(int n)
{
    if (n) 
        f(n / 2);
    else 
        return;
    printf("%d", n % 2);
}
void f(int input)
{
    int i = 0;
    int arr[32] = { 0 };
    for (i = 0; i < 32; i++)
    {
        arr[i] = input % 2;//除2取余法放入數組
        input = input / 2;
    }
    for (i = 31; i >= 0; i--)
    {
        printf("%d", arr[i]);//余數倒序輸出
    }
}

將一個字符(char)或者一個整形(int)的二進制形式輸出