#37764:


yp11251273@yphs.tp.edu.tw (704-31張鈞勉)

學校 : 臺北市私立延平高級中學
編號 : 239174
來源 : [203.72.178.1]
最後登入時間 :
2024-06-18 17:44:30
a034. 二進位制轉換 | From: [203.72.178.1] | 發表日期 : 2023-10-05 17:49

#include <stdio.h> #include <math.h> int main() { int dec; while(scanf("%d", &dec)!=EOF) { int bin[32]={}, i=0, j=0; /*!整數型態的變數可儲存的最大值為2的31次方, 因此如果要將之轉為二進位制,用來儲存的陣列大小至少要有32個元素*/ for(int deg=31;deg>=0;deg--) { /*從2的31次方開始檢查,次方逐次遞減。 若該數比2的31次方還大,就將該位數註記為1,並將其值減去2的31次方。*/ if(dec>=pow(2, deg)) { bin[i]=1; dec-=pow(2, deg); j++; } else bin[i]=0; if(bin[i]!=0 || j!=0) /*該位數為0的可能有兩種。 若前面沒有輸出過非0數字,則為前綴零,不輸出。 否則為非前綴零,需輸出*/ printf("%d", bin[i]); i++; } printf("\n"); } return 0; }

 
ZeroJudge Forum