m進製轉為n進製(0 m,n 10

2021-07-02 23:38:49 字數 857 閱讀 6888

首先,將m進製轉為10進製,然後在將10進製轉為n進製;(都用輾轉相除法)

#include 

using namespace std;

void mton(char* src, int m, char* dest, int n);

void reversestring(char *s);

int main() ;

mton("35", 10, a, 10);

puts(a);}/*

src為m進製字串

m為原進製

dest為目的字串

n為目的進製

*/void mton(char* src, int m, char* dest, int n)

intcount = 0;

char* tmp = dest; //不能改變首位址

//先轉化為10進製,逆著輾轉相除

while (*src != '\0')

int length = 0;

//輾轉相除,轉為n進製,逆著儲存

while (count != 0)

// puts(dest);

//逆過來

reversestring(dest);}/*

字串逆序

*/void reversestring(char *s)

q--; //指向最後一位

while (q > p)

}

說明:m和n都是10以內的數,如果大於10需要涉及到字母,可以在準換中進行判斷,例如

if(*src == 'a')
將10進製轉化為n時,可以參考另一篇:

模板 進製轉換(m 10 n)

進製轉換其實一類特殊的數字拆解問題。要完成m進製到n進製的轉換,只需要完成 1 m進製轉換成10進製,2 10進製轉換成n進製。對於 1 只需要依次計算每個數字與該位權重的積,然後累加即可。對於 2 只需要不斷地對這個數對n求模,再除以n即可,這一點是和10進製的數字拆解相似的。1.當以字串形式讀入...

M進製轉換為N進製數

給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 輸入為一行,m 32位整數 n 2 n 16 以空格隔開。為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制 比如,10用a表示,等等 比如 輸入 7 2 輸出 111 進製轉換的思路...

從M進製轉換為N進製

從m進製轉換為n進製 internal class mbase2nbase ctor m進製值字串 m進製 如10 引數值在2 36的範圍內 n進製 如8 則意味著從10進製轉換成8進製.引數值在2 36的範圍內 public mbase2nbase string mvalue,int m,int ...