tft每日頭條

 > 圖文

 > c語言如何十進制轉換為二進制

c語言如何十進制轉換為二進制

圖文 更新时间:2025-01-10 05:07:47
十進制轉二進制

十進制轉二進制使用的是除以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語言如何十進制轉換為二進制(C語言實現十進制轉二進制)1

運行分析

以輸入數值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,轉換的僅為正整數,不能轉換負數或小數。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved