十進制整數(shù)轉換為二進制整數(shù)采用"除2取余惜辑,逆序排列"法唬涧。
具體做法是:
用2整除十進制整數(shù)疫赎,可以得到一個商和余數(shù);
再用2去除商碎节,又會得到一個商和余數(shù)捧搞,如此進行,直到商為小于1時為止狮荔,
然后把先得到的余數(shù)作為二進制數(shù)的低位有效位胎撇,后得到的余數(shù)作為二進制數(shù)的高位有效位,依次排列起來殖氏。
代碼如下
#include <stdio.h>
int main(){
int num;
int wei = 1; //位數(shù)
long long sum =0;
printf("請輸入數(shù)字:");
scanf("%d",&num) ;
while(1){
int yushu = num % 2;
sum = sum + yushu*wei;
wei = wei*10;
if(num < 2){
sum = sum + num*wei;
break;
}
}
printf("%d",sum);
return 0;
}
注意
int yushu = num % 2;//求出余數(shù)
num = num / 2;
/求出除以二之后的數(shù)值作為下一次取余的基數(shù)sum = sum + yushu*wei;
//利用這個式子可以把求出來的余數(shù)倒序表示出來晚树,即二進制數(shù)wei = wei*10;
使位數(shù)往前一位if(num < 2)
sum = sum + num*wei;
即把最后無法再除2的數(shù)放到首位,就把十進制數(shù)轉換為二進制數(shù)
總結:
(1)這個demo的重點在于將一串數(shù)字倒序表示出來
(2)倒敘表達還可以用數(shù)組來實現(xiàn)雅采。
(3)十進制轉為其他進制的方法與二進制的相似爵憎。