進製轉換( R進製)

2021-07-27 22:26:10 字數 973 閱讀 5238

time limit: 1 sec  

memory limit: 128 mb  

64bit io format: %lld

submitted: 3  

accepted: 1 [

submit][

status][

web board]

我們可以用這樣的方式來表示乙個十進位制數: 將每個阿拉伯數字乘以乙個以該數字所處位置的值(減1)為指數,以10為底數的冪之和的形式。例如:123可表示為1*102+2*101+3*100這樣的形式。

與之相似的,對二進位制數來說,也可表示成每個二進位制數碼乘以乙個以該數字所處位置的值(-1)為指數,以2為底數的冪之和的形式。一般說來,任何乙個正整數r或乙個負整數-r都可以被選來作為乙個數制系統的基數。

如果是以r或-r為基數,則需要用到的數碼為0,1,...,r-1。例如,當r=7時,所需用到的數碼是0,1,2,3,4,5和6,這與其是r或-r無關。如果作為基數的數絕對值超過10,則為了表示這些數碼,通常使用英文本母來表示那些大於9的數碼。例如對16進製制數來說,用a表示10,用b表示11,用c表示12,用d表示13,用e表示14,用f表示15。

在負進製數中是用-r作為基數,例如-15(十進位制)相當於110001(-2進製),並且它可以被表示為2的冪級數的和數:

110001=1*(-2)5+1*(-2)4+0*(-2)3+0*(-2)2+0*(-2)1 +1*(-2)0

設計乙個程式,讀入乙個十進位制數和乙個負進製數的基數, 並將此十進位制數轉換為此負進製下的數:

-r∈;

int n,r;

vectorans;

int main()

ans.push_back(x);

}for(int i=ans.size()-1;i>=0;--i)

putchar(a[ans[i]]);

printf("(base%d)\n",r);

}return 0;

}

試題13 進製轉換(十進位制 R進製)

題目 輸入乙個十進位制數n,將它轉換成r進製數輸出。在10 r 16的情況下,用 a 表示10,用 b 表示11,用 c 表示12,用 d 表示13,用 e 表示14,用 f 表示15。輸入格式 輸入包含兩個整數n n 10000 和r 2 r 16 注意 n有可能是負整數。輸出格式 輸出一行 輸入...

進製進製進製 轉換

從剛學計算機就對進製轉換有著莫名的反感,2進製 8進製 10進製 16進製制各種轉換。下面就說下邏輯位址轉換成實體地址的求法吧 首先,使用者輸入乙個16進製制的數字cin hex logic add hex的意思是告訴計算機輸入的數是以16進製制方式輸入的 這個時候你要是輸出cout cout 經過...

進製轉換(任意進製轉換)

a進製轉b進製 思想 a進製轉十進位制 十進位制轉b進製 a進製轉十進位制 include include includeusing namespace std const int p 16 p代表 a進製 int main cout 十進位制轉b進製 include includeusing na...