十進位制轉化為二進位制
阿新 • • 發佈:2021-01-13
輸入1個無符號的十進位制整數,將其轉換成二進位制,並輸出。(10分)
題目內容:
從鍵盤輸入1個小於65536的無符號的十進位制整數,將其轉換成16位二進位制,並輸出。
具體要求完成的功能如下:
1)如輸入負數,則輸出 “資料小於0”
2)如超過65535,則輸出“超過最大數”
3)輸出轉換過的16位二進位制數;
輸入格式:
輸入一個小於65536的正整數
輸出格式:
二進位制數每8位數字後空一格,不足16位補0,行末沒有空格。
輸入樣例:
765
輸出樣例:
00000010 11111101
#include<stdio.h>
int main(){
int a[ 16]={0},m,i,time;//陣列會往後補0,但是不會往前
scanf("%d",&m);//輸入一個整數m
if(m>=0&&m<=65535)
{
time=0;
while(m!=0){
time++;
if(m%2==1){
a[16-time]=1;
}
else if(m%2==0){
a[16-time]=0;
}
m=m/2;//用除二法對十進位制數進行轉化
}
for(i=0;i<=7;i++)
{
printf("%d" ,a[i]);
}
printf(" ");
for(i=8;i<16;i++)
{
printf("%d",a[i]);
}
}
else if(m<0)
printf("資料小於0");
else
printf("超過最大數");
return 0;
}