程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 二進制-C語言10進位轉化2進位。求大神啊,初學者什麼都不會啊真是糾結,果然女生學這個就是作死TAT

二進制-C語言10進位轉化2進位。求大神啊,初學者什麼都不會啊真是糾結,果然女生學這個就是作死TAT

編輯:編程綜合問答
C語言10進位轉化2進位。求大神啊,初學者什麼都不會啊真是糾結,果然女生學這個就是作死TAT

1.函數原型: void decimalToBinary (int num);
2.把十進位數是1023以下的自然數轉化成二進制的數值
3.如果不符合[1.1023]該程序結束,用return
4.化成二進制時0000 0000 0000 0000 每四位一個空格顯示

程序正常施行顯示
請輸入一個十進位的數字: 27
0000 0000 0001 1011
請輸入一個十進位的數字: 1024
不是正確的自然數

作業不是中文的,翻譯的很奇怪,求大神啊解救

最佳回答:


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

#define BINARY_LEN 16

void decimalToBinary (int num)
{
    int i;
    if(num == -1)
        return;

    if (num > 1023 || num < 0)
    {
        printf("不是正確的自然數\n");
        return ;
    } 

    for(i = (BINARY_LEN - 1); i >= 0; --i)
    {
        //if ((BINARY_LEN - i - 1) % 4 == 0)
        if ((i+1) % 4 == 0 && i != 15)
            printf(" ");

        printf("%d", (num & (int)pow(2, i)) >> i); 
    }   
    printf("\n");   
}

int main(void)  //測試 
{
    int inputNum;
    for(;;)
    {
        printf("請輸入1~1023的自然數,輸入-1表示退出測試:");      
        scanf("%d", &inputNum); 
        if (inputNum == -1)
            return 1;
        else
            decimalToBinary(inputNum);  
    }

    getchar();  //防止閃退 
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved