高精度整數的進製轉換

2021-09-26 14:40:07 字數 3241 閱讀 8405

十進位制轉換為某進製——除基取餘法

題目描述:將m進製的數x轉換為n進製的數輸出。

輸入:輸入的第一行包括兩個整數:m和n(2<=m,n<=36)。

下面的一行輸入乙個數x,x是m進製的數,現在要求你將m進製的數x轉換成n進製的數輸出。

輸出:輸出x的n進製表示的數。

樣例輸入:

16 10

f

樣例輸出:

15
輸入時字母部分為大寫,輸出時為小寫,並且有大資料。

為大數過載運算子。

#include

#include

#include

using namespace std;

const

int maxdigits =

100;

/*int ans[50];

int psize = 0;

//進製轉換

void radix(int a, int b) while (a);

}//b進製的數字a 轉換為十進位制

//假設均為小寫字母

void radixto10(char a, int b) }*/

//a進製轉換為b進製

//先轉為10進製(涉及big + big、int * big),再轉為b進製(涉及big%int、big / int)

//大整數的進製轉換

struct biginteger

void

set(

int x)

while

(x);

} biginteger operator +

(const biginteger & b)

const

if(carry !=

0)res.digit[res.size++

]= carry;

return res;

} biginteger operator *

(int x)

const

if(carry !=

0)res.digit[res.size++

]= carry;

return res;

} biginteger operator /

(int x)

const

res.size =0;

for(

int i =

0; i < maxdigits;

++i)

if(res.digit[i]!=0

)res.size = i;

res.size++

;return res;

}int operator %

(int x)

const

return remainder;}}

;char str[maxdigits]

;char ans[maxdigits]

;int

main()

else

if(str[i]

>=

'a'&& str[i]

<=

'z')

else

if(str[i]

>=

'0'&& str[i]

<=

'9')

zero = zero + one * t;

one = one * a;

}int size =0;

dowhile

(zero.digit[0]

!=0|| zero.size !=1)

;for

(int i = size -

1; i >=0;

--i)

printf

("%c"

, ans[i]);

printf

("\n");

}system

("pause");

return0;

}

百煉2798 2進製轉化為16進製制字串長度至少是1,至多是10000.

先寫出整型進製轉換:

大數:

#include

#include

#include

#include

#include

#include

#define n 10000

using namespace std;

typedef

long

long ll;

struct biginteger

}void

set(

int x)

while

(x);

}void

output()

}}biginteger operator +

(const biginteger &a)

const

if(carry !=0)

return ret;

} biginteger operator *

(int x)

const

if(carry !=0)

return ret;

} biginteger operator /

(int x)

const

for(

int i =

0; i <

1000

;++i)

ret.dsize++

;return ret;

}int operator %

(int x)

const

return remainder;}}

;int

main()

int anssize =0;

dowhile

(ten.dsize !=

1|| ten.digit[0]

!=0);

for(

int i = anssize -

1; i >=0;

--i)

printf

("\n");

}return0;

}

C 高精度整數,大數的進製轉換

附 c 62.cpp 進製轉換 created by chenmeiqi on 2019 4 1.include include using namespace std unsigned long max len struct biginteger else res s 結果字串拼接 return ...

進製轉換 高精度除法 進製轉換

高精度除法運算 include include include using namespace std struct bign bign change char str return a bign divide bign a,int b,int r 去除前導0 while c.len 1 1 c.d...

高精度進製轉換模板

高精度進製轉換模板 高精度進製轉換 把oldbase 進製的數轉化為newbase 進製的數輸出。呼叫方法,輸入str,oldbase newbase.change solve output 也可以修改output 使符合要求,或者存入另外乙個字元陣列,備用 include include defi...