#include <iostream>
#include <string>
#include <math.h>
#include <string.h>
#include <algorithm>
using namespace std;
//OJ里面不让用size()函数,故自建一个mySize()函数
int mySize(string num)
{
int count = 0;
while (!num.empty())
{
num.pop_back();
count++;
}
return count;
}
//十进制转换成R进制
string TenToR(int num,int R)
{
string ans;
char temp;
if (R < 10)
{
while (1)
{
if (num == 0)break;
temp = (num % R) + '0';
num /= R;
ans.insert(0, 1, temp);
}
}
else
{
while (1)
{
if (num == 0)break;
if(num % R >= 10)
temp = (num % R) - 10 + 'A';
else
{
temp = (num % R) + '0';
}
num /= R;
ans.insert(0, 1, temp);
}
}
return ans;
}
//R进制转换为十进制
int RToTen(string num, int R)
{
int ans = 0;
int count = 0;
int size1 = mySize(num);
while (1)
{
int p = pow(R, count);
if (num.back() >= 'A')
{
ans += (num.back() + 1 - 'A') * p;
}
else
{
ans += (num.back() - '0') * p;
}
num.pop_back();
count++;
if (count == size1)break;
}
return ans;
}
C++进制转换一些实用自定义函数
最新推荐文章于 2024-07-22 23:59:01 发布