基礎問題:進位制轉換
進位制轉換基礎問題
對一個P進位制的數要轉換成Q進位制,需要分為兩步:
1.將一個P進位制數x轉換為十進位制數y
2.將十進位制數轉換成Q進位制數
STEP1:
對一個十進位制數y=d1d2…dn,可以寫成:
y=d110n-1+d210n-2+…+dn-110+dn;
同樣的,如果P進位制數x為a1a2…an,那麼它寫成下面這個形式之後使用十進位制加法和乘法,就可以轉換為十進位制數y:
y=a1Pn-1+a2Pn-2+…+an-1P+an;
而這個公式可以很容易用迴圈進行實現:
int y=0;int product=0;
while(x!=0)
{
y+=(x%10)*product;
x=x/10;
product=product*P;//P為轉換前進位制
}
STEP2:將十進位制數轉化為Q進位制數z
採用“除基取餘法”。基:指將要轉換成的進位制Q,因此除基取餘的意思就是每次將待轉換數除以Q,然後將得到的餘數作為低位儲存,而商則繼續除以Q並進行上面的操作,最後當商==0時,將所有位從高到低輸出就可以得到z。
eg:將十進位制數11轉換為二進位制數:(D to B)
//十進位制轉二進位制
int z[40]=NULL;int count=0;
while(x!=0)
{
z[count]=x%2;
count++;
x=x/2;
}
for(int i=count-1;i>=0;i++)
{print(z[i]);}
練習題:PAT B1022 :D進位制的A+B
輸入兩個非負十進位制整數A和B(<=2^30-1^ )以及D(進位制數),輸出A+B的D(1<D<=10)
輸入格式:在一行中一次給出三個整數A、B和D;輸出D
非常的簡單。
#include<iostream>;
using namespace std;
int main()
{
int A, B; int D, sum;
int z[40]; int count = 0;
cout << "enter A,B,C" << endl;
cin >> A >> B >> D;
if (D > 10 || D <= 1)
{
cout << "error!illegal input" << endl;
return 0;
}
sum = A + B;
while (sum != 0)
{
z[count] = sum % D;
count++;
sum = sum / D;
}
for (int i = count - 1; i >= 0; i--)
{
cout << z[i];
}
return 1;
}
《演算法筆記》
相關文章
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 基礎練習 十六進位制轉八進位制
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- 技術問 - 進位制轉換
- Qt進位制轉換(十進位制轉十六進位制)QT
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- 進位制轉換
- 關於Java中進位制轉換以及位運算問題Java
- 十六進位制轉換為八進位制
- 十六進位制轉換為十進位制
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制轉十進位制快速轉換方法
- lua之m進位制轉換為n進位制-任意進位制轉換演算法演算法
- 藍橋杯 基礎練習 十六進位制轉八進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- JavaScript 進位制轉換JavaScript
- 1.5進位制轉換
- 進位制的轉換
- JavaScript十進位制轉換為二進位制JavaScript
- shell 中轉換16進位制10進位制
- Oracle二進位制與十進位制轉換Oracle
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- Python3 基礎學習之數值進位制轉換Python
- 十進位制與二進位制互相轉換指南
- 進位制均值-進位制轉換+最大公約數
- 進位制與二進位制及相關轉換
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 數的進位制轉換
- python 進位制轉換Python
- c#進位制轉換C#
- 【python】進位制轉換Python
- 進位制轉換圖解圖解
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS