進(jìn)制轉(zhuǎn)換(以二進(jìn)制為例)

十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)采用"除2取余,逆序排列"法。

具體做法是:
用2整除十進(jìn)制整數(shù),可以得到一個(gè)商和余數(shù);
再用2去除商,又會(huì)得到一個(gè)商和余數(shù),如此進(jìn)行,直到商為小于1時(shí)為止,
然后把先得到的余數(shù)作為二進(jìn)制數(shù)的低位有效位,后得到的余數(shù)作為二進(jìn)制數(shù)的高位有效位,依次排列起來(lái)。

代碼如下

#include <stdio.h>
int main(){
    int num;
    int wei = 1; //位數(shù)
    long long sum =0;
    printf("請(qǐng)輸入數(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;
    //利用這個(gè)式子可以把求出來(lái)的余數(shù)倒序表示出來(lái),即二進(jìn)制數(shù)

  • wei = wei*10;
    使位數(shù)往前一位

  • if(num < 2)
    sum = sum + num*wei;
    即把最后無(wú)法再除2的數(shù)放到首位,就把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)

總結(jié):

(1)這個(gè)demo的重點(diǎn)在于將一串?dāng)?shù)字倒序表示出來(lái)
(2)倒敘表達(dá)還可以用數(shù)組來(lái)實(shí)現(xiàn)。
(3)十進(jìn)制轉(zhuǎn)為其他進(jìn)制的方法與二進(jìn)制的相似。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容