1樓:匿名使用者
樓上的 好像還是不能解決浮點數的問題啊
int i=0;
int j,k=0;
double value=0.0;
char d[100];
cout<<"請輸入:\n";
cin>>d;
j=strlen(d);
for(i=(j-1);i>=0;i--);cout<<"十進位制是:"<
這段可以解決二進位制轉為十進位制 但是不能實現浮點數的運算 大家繼續幫忙啊(我是樓主)
2樓:晨早早
樓上的,你用的是什麼語言,我怎麼看不明白啊。
用c語言程式設計:
include
include
main()
;a=(int *)malloc(100*sizeof(int);//動態分配空間
top=base=0;//建立乙個空棧
int m;
long s=0;
int list=;
m=strlen(list);
int b[m];
int *p=list;
if(*p!=\0)
dowhen(top==base);
for(i=0;i
s=s+pow(int (2*b[i]),int i);
printf("%ld",s);}
3樓:
"10 >> 2"
,"十進位制轉為二進位制"
,"十進位制數值∶",0,,,,"#num!","二進位制數值∶",0
,2,0,"…",0,1,"#num!"
,2,0,"…",0,10,"#num!"
,2,0,"…",0,100,"#num!"
,2,0,"…",0,1000,"#num!"
,2,0,"…",0,10000,"#num!"
,2,0,"…",0,100000,"#num!"
,2,0,"…",0,1000000,"#num!"
,2,0,"…",0,10000000,"#num!"
,2,0,"…",0,100000000,"#num!"
,2,0,"…",0,1000000000,"#num!"
"2 >> 10"
,"二進位制轉為十進位制"
,,,,"#num!",,"於十進位制的值"
,"二進位制數值∶",0,,"#num!",10,0,"x",2,0,"=",0
,,,,"#num!",100,0,"x",2,1,"=",0
,"十進位制數值∶",0,,"#num!",1000,0,"x",2,2,"=",0
,,,,"#num!",10000,0,"x",2,3,"=",0
,,,,"#num!",100000,0,"x",2,4,"=",0
,,,,"#num!",1000000,0,"x",2,5,"=",0
,,,,"#num!",10000000,0,"x",2,6,"=",64
,,,,"#num!",100000000,0,"x",2,7,"=",128
,,,,"#num!",1000000000,0,"x",2,8,"=",256
,,,,"#num!",10000000000,0,"x",2,9,"=",512
,,,,,100000000000,"總和= ",,,,,0
"10>>2(digit)"
,"十進位制小數轉為二進位制小數"
,"十進位制小數∶",,,"小數部份乘二","整數部份","小數部分"
,,,,0,0,0,0.1
,"二進位制小數∶",0,,0,0,0,0.01
,,,,0,0,0,0.001
,,,,0,0,0,0.0001
,,,,0,0,0,"1e-05"
,,,,0,0,0,"1e-06"
,,,,0,0,0,"1e-07"
,,,,0,0,0,"1e-08"
,,,,0,0,0,"1e-09"
,,,,0,0,0,"1e-10"
,,,,0,0,0,"1e-11"
,,,,0,0,0,"1e-12"
,,,,0,0,0,"1e-13"
,,,,0,0,0,"1e-14"
,,,,0,0,0,"1e-15"
,,,,0,0,0,"1e-16"
,,,,0,0,0,"1e-17"
,,,,0,0,0,"1e-18"
,,,,0,0,0,"1e-19"
,,,,0,0,0,"1e-20"
,,,,0,0,0,"1e-21"
"2>>10(digit)"
,"二進位制小數轉為十進位制小數"
,"二進位制小數∶",,,,,"數字"
,,,0,10,,0,"x",2,-1,"=",0
,"十進位制小數∶",0,0,100,,0,"x",2,-2,"=",0
,,,0,1000,,0,"x",2,-3,"=",0
,,,0,10000,,0,"x",2,-4,"=",0
,,,0,100000,,0,"x",2,-5,"=",0
,,,0,1000000,,0,"x",2,-6,"=",0
,,,0,10000000,,0,"x",2,-7,"=",0
,,,0,100000000,,0,"x",2,-8,"=",0
,,,0,1000000000,,0,"x",2,-9,"=",0
,,,0,10000000000,,0,"x",2,-10,"=",0
,,,,,,,,,"總和∶",,0
4樓:
用8421算最簡單,從二進位制的後面開始算起,例如100010010111,從後面4個為一組,二進位制為1的數字對應,為0的數字不對應!!!
8 4 2 1
0 1 1 1
0+4+2+1=7
記住要從後向前算!!
5樓:
用計算機知識你可以啦
如何轉換浮點數的二進位制格式為十進位制
6樓:隨便什麼名啦啦
二進位制的小數轉換為十進位制主要是乘以2的負次方,從小數點後開始,依次乘以2的負一次方,2的負二次方,2的負三次方等。
例如:二進位製數0.001轉換為十進位制。
第一位為0,則0*1/2,即0乘以2負一次方。
第二位為0,則0*1/4,即0乘以2的負二次方。
第三位為1,則1*1/8,即1乘以2的負三次方。
各個位上乘完之後,相加,0*1/2+0*1/4+1*1/8得十進位制的0.125
擴充套件資料:
二進位制轉換為十進位制:
方法:「按權求和」,該方法的具體步驟是先將二迸制的數寫成加權係數式,而後根據十進位制的加法規則進行求和。
規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
十進位制轉換為二進位制:
乙個十進位製數轉換為二進位製數要分整數部分和小數部分分別轉換,最後再組合到一起。
整數部分採用 "除2取餘,逆序排列"法。具體做法是:用2整除十進位制整數,可以得到乙個商和餘數;再用2去除商,又會得到乙個商和餘數,如此進行,直到商為小於1時為止,然後把先得到的餘數作為二進位製數的低位有效位,後得到的餘數作為二進位製數的高位有效位,依次排列起來 。
小數部分要使用「乘 2 取整法」。即用十進位制的小數乘以 2 並取走結果的整數(必是 0 或 1),然後再用剩下的小數重複剛才的步驟,直到剩餘的小數為 0 時停止,最後將每次得到的整數部分按先後順序從左到右排列即得到所對應二進位制小數。
通用進製轉換:
不同進製之間的轉換本質就是確定各個不同權值位置上的數碼。轉換正整數的進製的有乙個簡單演算法,就是通過用目標基數作長除法;餘數給出從最低位開始的「數字」。
7樓:超級一起的回憶
單精度浮點數轉換十進位制步驟:
1、分割數字的符號、階碼和有效數字;
2、將偏移階碼減去偏移,得到真正的階碼;
3、把數字寫成規格化的二進位製數形式;
4、把規格化的二進位製數改變成非規格化的二進位製數;
5、把非規格化的二進位製數轉換成十進位製數。
單精度浮點數轉換十進位制舉例:
把協處理器中的浮點數1100000111001001000000000000轉換成十進位製數
解:1、把浮點數1100000111001001000000000000分割成三部分,可得:
符號位是1,階碼是10000011,尾數是1001001000000000000
2、還原階碼:10000011 – 01111111=100
3、該浮點數的規格化形式:1.1001001×24 (其中前面的「1.」從隱含位而來)
4、該浮點數的非規格化形式:11001.001
5、該浮點數的十進位製數為-25.125 (因為符號位為1,所以,該數是負數)
十進位制29 86表示為二進位制的浮點數,其中尾數為24位,階碼為8位
29.86d 11101.11011100001010001111b 1.110111011100001010001111 2 4b 因此階為4,尾數 24位 為110111011100001010001111 不過,你是否弄錯了。ieee754標準中尾數應該只有23位啊怎麼會使24位?我還是按ie...
二進位制轉十進位制,二進位制轉化為十進位制的演算法?
有符號數的話,最高位為1 就是最左邊那個 表示負數,這時候就要按位取反再加1,得出來的二進位制正常翻譯成十進位制,然後結果就是負的那個數。無符號數,或者最高位為0的話,直接轉換就行了。二進位制轉化為十進位制的演算法?從最抄低位 最右 算起襲,位上的數字乘以本位的權重。bai,權重就du是2的第幾位的...
二進位制如何轉化為十進位制?二進位制怎樣轉換為十進位制?
二進位制是一種由0和1組成的數字系統,而十進位制是一種由0到9這10個數字組成的數字系統。將乙個二進位製數轉化為十進位制,可以使用以下方法 從二進位製數的最右邊 即最低位 開始,將每一位的值乘以2的冪,冪的指數從0開始逐次增加1。將每一位的乘積相加,得到最終的十進位製數。例如,將二進位製數10110...