<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 十進制轉二進制怎么算(二進制計算公式)


    十進制轉二進制

    十進制轉二進制使用的是除以2取余數的方法,下面以十進制數11為例

    11 ÷ 2 = 5 余數1

    5 ÷ 2 = 2 余數1

    2 ÷ 2 = 1 余數0

    1 ÷ 2 = 0 余數1

    首次得到的余數放在最右,因此轉換為二進制數1011

    C語言十進制轉二進制

    分析

    (1)使用數組存儲二進制,循環數組輸出結果

    (2)使用除2取余,使用%。

    #include<stdio.h>
    int main(void){
        int m,n,i,j;
        int a[16] = {0};
        printf("請輸入一個整數:");
        scanf("%d",&m);
        for(n=0;n<15;n++){
            i = m % 2;
            j = m / 2;
            m = j;
            a[n] = i;
        }
        for(n=15;n>=0;n--){
            printf("%d",a[n]);
            if(n%4 == 0){
                printf(" ");
            }
        }
        return 0;
    }

    程序分析

    (1)int a[16] = {0},定義了數組a,初始值設定為0。

    (2)第一個for循環for(n=0;n<15;n++),循環范圍0-14,設定了數a的初值為0,默認最高位為0,轉換后的二進制數放入數組剩下的元素。

    (3)第二個for循環for(n=15;n>=0;n–),循環范圍0-15,輸出所有的數值。

    運行結果

    C語言實現十進制轉二進制

    運行分析

    以輸入數值11為例進行分析,輸入11,m=11,進入第一個for循環

    (1)n=0,i=m%2=11%2=1,j=m/2=11/2=5,m=j=5,a[0]=1

    (2)n=1,i=m%2=5%2=1,j=m/2=5/2=2,m=j=2,a[1]=1

    (3)n=2,i=m%2=2%2=0,j=m/2=2/2=1,m=j=1,a[2]=0

    (4)n=3,i=m%2=1%2=1,j=m/2=1/2=0,m=j=0,a[3]=1

    此時如果輸出數組,結果:1101 0000 0000 0000

    進入第二個for循環,使用除2取余法,首次得到的余數需要放在最右,因此需要逆序輸出數組,每隔四位輸出一個空格。

    結果:0000 0000 0000 1011

    總結

    (1)本例中使用數組存儲二進制位數,但數組大小僅為16,數值過大則不能轉換。

    (2)本例中數組初始化為0,轉換后輸出最高位為0,轉換的僅為正整數,不能轉換負數或小數。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费