YangYoungAcor 2020-12-07 17:58 采纳率: 100%
浏览 15
已采纳

萌新求助关于进制转换从十进制到33,34,35,36

#if 1
#include<iostream>
#include<math.h>
#include<cstring>
using namespace std;
long long int NDfunc(char *s,int len,int n);
void DNfunc(long long int ten, int m,int ret);
int main()
{
	int n,m,ret = 0;
	long long int now = 0;
	char s[100] = { 0 };
	int len = 0;
	while (1)
	{
		cin >> n >> s;
		cin >> m;
		if (s[0] == '-')
		{
			s[0] = '0';
			ret = 1;
		}
		len = strlen(s);
		cout << "len is" << len << endl;
		now = NDfunc(s, len, n);
		cout << now << endl;
		if (n >= 2 && m <= 36 && n != m && now >= -10e18 && now <= 10e18)
				break;

	}

	DNfunc(now, m,ret);
	system("pause");
	return 0;
}

long long int NDfunc(char *s,int len,int n)
{
	int tmp = 0;
	long long int ten = 0;
	int mi = len - 1;
	for (int i = 0; i < len; i++)
	{
		if (s[i] >= 'A' && s[i] <= 'Z')
		{
			tmp = s[i] - 'A' + 10;
		}
		else
		{
			tmp = s[i] - '0';
		} 

		ten += tmp * pow(n, mi);
		mi--;
	}
	return ten;

}

void DNfunc(long long int ten, int m,int ret)
{
	char arr[100] = { 0 };
	char tmp;
	int j = 0;
	long long int n = 0;
	while (ten != 0)
	{
	    n = ten % m;
		ten /= m;
		if (n < 10)
			tmp = '0' + n;
		else
			tmp = n - 10 + 'A';
		arr[j] = tmp;
		j++;
	}
	if (ret == 1)
	{
		cout << "-";
	}
    for (j; j >= 0; j--)
	{
		if(arr[j] != 0)
		cout << arr[j];
	}
	printf("\n");
}
#endif

当 10 进制为 10e18时 输出的 33,34,35,36进制大小与网上进制转换器得出的不一样,是后两位不一样,如:R1 - S0;33,

并且将这些数再转换为10进制得出的结果 总比10e18大或小128,很是头疼,望大佬帮忙

  • 写回答

1条回答 默认 最新

  • 鲛人泣珠 2020-12-07 19:40
    关注

    你把网上转换器所能产生的正确值私信我或者是在此处留言。我来帮你处理这个问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 怎样才能让IDEA不爆红