三進制演算法
① 三進制怎麼轉十進制
- -!!
比如要把234這個數轉為3進制數,步驟如下:
234 除以 3 等於78,余數為:0;
78 除以 3 等於26,余數為:0;
26 除以 3 等於8,余數為:2;
8 除以 3 等於 2,余數為:2;
2 除以 3 等於 0,余數為:2;
倒上去寫,(十進制)234 == (三進制)22200
想把十進制的數字轉為任何你能想到的任何進制,都可以用這個方法,當然這個方法是存在缺陷的,想深入研究的自己找書去學學吧。
嘿嘿,五樓的,你自己檢查一下自己的演算法吧,
「例如8(10)轉化為8(2)那麼就是1000方法是第一位的每一位的權值相加
從最後一位向前數,就是0,1,2,3次方即2(這個2表示2進制)X1的3次方+2(這個2表示2進制)X0的2次方+2(這個2表示2進制)X0的1次方+2(這個2表示2進制)X0的0次方=8」
是這樣么?
是這樣吧:
2(的3次方)X1+2(的2次方)X0+2(的1次方)X0+2(的0次方)X0=8
所以剛才我算出來那個數22200呢,是這樣算的:
3(的4次方)X2+3(的3次方)X2+3(的2次方)X2+3(的1次方)X0+3(的0次方)X0=234
希望可以幫到你.!
② 把十進制的18化為三進制
18=8*10º+1*10¹
三進制演算法應該是 a*3º+b*3¹+c*3².........
可以知道3º=1 3¹=3 3²=9
且三進制的位數里沒有超過2的數,就像10進制的數里沒有超過9的位數
那麼可以輕松的看出2*3²就等於18
所以 200 就是你要的答案
自己再琢磨琢磨
希望對你有所幫助
③ 三進制如何轉為十進制
整數部分,一般使用長除法,用基數除待轉換數或上一步的商,求得余數或補數,直至最後的商為零。將各次余數從後往前排列,即為目標進制下的整數部分。
小數部分,一般使用長乘法,用基數乘待轉換數或上一步的積,求得整數部分,將正數部分從前往後排列,即為目標進制下的小數部分正負數需要分別處理。
比如32.12轉三進制:
一、整數部分:
32除以3商10餘2
10除以3商3餘1
3除以3商1餘0
1除以3商0餘1
所以整數部分是1012
二、小數部分:
0.12×3=0.39整數部分拿出0
0.39×3=1.17整數部分拿出1
0.17×3=0.51整數部分拿出0
0.51×3=1.53整數部分拿出1
0.53×3=1.59整數部分拿出1
依次類推直到余數為0或者達到要求的精度,比如到小數點後5位就為:0.01011二個結果用小數點連接即可:1012.01011
(3)三進制演算法擴展閱讀
三進制一般有兩種表示形式:
一、以0,1,2為基本字元的表示形式。例如,365在這種表示形式中的寫法是111112。
二、以-1,0,1為基本字元的表現形式。例如,365在這種表示形式中的寫法是1TTTTTT(以T表示-1,負號置於1之上的象形)。這種表示法也被稱作對稱三進制或平衡三進制。
普通三進制和對稱三進制的換算,將普通三進制數中的「2」替換為1T,並進行相應的進位計算即可轉換為對稱三進制。
對稱三進製表示整數和浮點數並不需要額外的符號位。最高非零位為1的是正數、為T的是負數。參考二進制,對稱三進制一個位元組6位(+/-121)。
④ 如何計算三進制
十進制數換三進制短除三,三進制換十進制從個為數前每位×3的0,1,2... ...次方,然後所有位乘完後相加總值!
⑤ 三進制演算法
滿三進一嘛!
⑥ 十進制換算平衡三進制的演算法
c代碼,演算法主要就是判斷到余數是2的時候得處理,就是+-,高位留著累加到下次運算
intmain(){
intdec=25;
intter[32];
intlower=0,upper=0;
intindex=0;
do{
switch(dec%3){
case0:
lower=0+upper;
upper=0;
break;
case1:
lower=1+upper;
upper=0;
break;
case2:
lower=-1+upper;
upper=1;
break;
}
if(lower==2){
lower=-1;
upper++;
}
ter[index++]=lower;
dec/=3;
}while(dec>0);
if(upper==1)
ter[index]=upper;
else
index--;
for(inti=index;i>=0;i--){
charc;
switch(ter[i]){
case-1:
c='-';
break;
case0:
c='0';
break;
case1:
c='+';
break;
}
printf("%c",c);
}
return0;
}
⑦ 前蘇聯科學家發明出三進制,但為什麼卻沒有延續下去
有分析認為2或者7進制效率最高最省設備,所以3進制顯然比2進制要好,問題在於要表示這個3進制的三種截然不同的狀態相對較難,雖然能用晶體管表示,但在存儲過程中就不太容易找到相應的三態介質,所以二進制仍然大行其道。
走不下去了,發展遇到瓶頸。
因為會導致電子元件太難做,所以還是二進制更合適。如果換成三進制,那就代表要用三極體,成本更高,占的面積也更大,而且電子元件故障率也更高,特別是以前電子元件還沒有精細化的情況下,都比較巨大,就有點不實際了。
⑧ 二進制、三進制、四進制等怎樣和十進制相互轉化
假設有二進制數10110,那麼轉化為十進制數為:
1*2^4+0*2^3+1*2^2+1*2^1+0*2^0
假設有三進制數2101,那麼轉化為十進制數為:
2*3^3+1*3^2+0*3^1+1*3^0
四進制也同理。
把十進制轉化為二進制,用除法求余,其他進制的轉化同理。
⑨ 三進制化為二進制演算法
將三進制數整除以2(注意是三進制除法),得到商和余數,記下余數,這個余數就是二進制數的最低位;用商繼續整除以2,再記下余數,這是二進制數的次低位;......一直到商為0為止,此時的余數是二進制數的最高位。然後按照從高到低的順序,將各個步驟得到的余數串聯起來,就是轉換好的二進制數。
這個方法,適用於N進制數轉換到M進制數。
⑩ 計算機科學界的重大突破——三進制計算機出現啦~經過科學家 X 的不斷努力,三進制
這個問題跟所謂的什麼三進制計算機沒有關系~
然後回答你的問題,這問題總結起來就是一句話:對文本作哈夫曼編碼。詳細說來就是先掃描一遍文本、統計字元頻率;然後根據頻率構造哈夫曼樹;最後得到哈夫曼編碼方案,求得編碼後的字元串長度。
實現代碼大同小異搜一個即可。