寫乙個C 程式,二進位制十進位制互換

2021-08-31 12:45:26 字數 1076 閱讀 8197

現在提供乙個c語言程式給你,可以實現任何進製(1~16)到任何進製的轉換的呢?但是是c語言程式的,可以在vc++6.0sp6上除錯通過的,源程式如下:

#include

#include

#include

#include

void main()

if(a[k]=='.')//如果其中再次遇到「.」證明輸入有誤,終止程式

}//注意:前面兩個for()迴圈可以合併成乙個迴圈,這樣就可以節約很多的**的,但是相對而言,兩段程式的時間複雜度一樣,修改後的**如下:

/*i=0;

j=0;

for(k=0;k1||j>1)

}*/for(j=x-1;j>=0;j--)

else

r=a[j]-'0';//將字元轉換成數字

if(r>=t)

p=p+r*pow((double)t,(double)(x-j-1));//計算結果

}if(a[x]=='.')

else

r=a[j]-'0';//將字元轉換成數字

if(r>=t)

p=p+r*pow((double)t,(double)(x-j));}}

if(n==10)//選擇性計算,如果是整數就不用進行這一步的計算了,這樣可以節約程式的執行時間

printf("%f",p);

}else

c=0;

//if(p!=(int)p)//選擇性計算,如果是整數就不用進行這一步的計算了,這樣可以節約程式的執行時間//}

printf("轉換結果為:");

if(a[0]=='-')

printf("-");

for(j=i-1;j>=0;j--)//反序輸出,大於10的數字進行相應的變化

if(p!=(int)p)//選擇性輸出,這樣可以節約輸出時間和程式的執行時間

printf("\n");//輸出換行,以使程式的輸出結果美觀

} 如果想變為c++程式,只需要做適當的修改就是了的呢?比如輸入使用cin,輸出使用cout等的就可以了的,主題結果就不用變的就好的!使用函式可以簡化程式的,自己可以試一下的,此處只是作為參考的!

十進位制轉二進位制(C

十進位制轉換二進位制其實不是個複雜的問題,我們首先搞清楚原理 整數部分 如果不是0,不斷除2,直到除到1為止,得到的餘數最後逆向排列輸出 如果是0,直接輸出 小數部分 小數部分m非0,則不斷乘2,如果2 m超過1,則輸出1,m 2 m 1 如果2 m不超過1,m 2 m 由於很多小數是無法完全轉換為...

十進位制轉二進位制(C )

相信大家應該都知道,十進位制轉k進製的方法常用的就是除k取餘的方法,這裡針對這個方法,給出了c 的 需要注意的是,除二取餘的方法,對於餘數的選取是從後往前取的,所以在 中,也要解決這個問題才行。模仿不停地除2的過程,每次除2之後用 取餘數i 用 作為下一次除2的被除數temp j初始化為1,每次除了...

二進位制轉十進位制(C )

輸入八位二進位制資料轉成十進位制 思想 逐位讀入輸入的八位二進位制,判斷該位是否為 1 若為1,則該位值為2的 i 次方 該位為第 i 位 每位對應值累加結果為所求十進位制 輸入11011010,讀入第乙個資料為1,第七位 從右往左,0到7 對應值為2的7次方即128 第二個資料為1,第六位,對應值...