进制转换(C++)(简易)(字符串)

进制转换——题目描述

在一次 NOIP 初赛模拟考试中,小明碰到了一道进制转换的题,由于没有学过进制转换,导致成绩不理想,于是他下决心搞明白进制转换是怎么回事。通过查阅资料他发现,进制有很多种,通常的有二进制、八进制、十进制和十六进制等。如果不超过十进制,0到9 的十个数字就够用了,但超过十进制时,两位数字需要用一个字符去表示。通常用大写字母A表示十进制中的10,用大写字母B表示十进制中的11,用大写字母 C表示十进制中的12,用大写字母D表示十进制中的13,用大写字母E表示十进制中的14,用大写字母F表示十进制中的15,以此类推。

现在他想编写一个程序,将一个任意的 n 进制数转换成 m 进制的数。

输入格式
第一行仅有一个正整数 n (2≤n≤16),表示给定数是一个 n 进制数。
第二行是一个字符串,描述一个合法的 n 进制正数。
第三行仅有一个正整数 m (2≤m≤16),表示要将给定的 n 进制数转换成 m 进制数。

注意: 所给的 n 进制数在其对应的 10 进制数中大小不会超过 10⁹。

输出格式
一行,输出转换成 m 进制的数。

样例输入

2
101101
10

样例输出

45

代码:

#include <iostream>
#include <string>
using namespace std;
int k, ans = 0,si,k2; 
string n;
int main() {
    cin >>k>> n>>k2;
    si=n.size();
    for (int i = 0; i < si; i++){
        if (n[i] >= '0' && n[i] <= '9'){
            ans = ans * k + n[i] - '0';
        } else {
            ans = ans * k + n[i] - 'A' + 10;
        }
    }
    int digit[25];
    int cnt=0;
    while (ans) {
        digit[cnt++] = ans % k2;
        ans /= k2;
    }
    for (int i = cnt - 1; i >= 0; i--) {
        if (digit[i] < 10) {
            cout << digit[i];
        } else {
            cout << char(digit[i] - 10 + 'A');
        }
    }
    cout << endl;
    return 0;
}

相关推荐

  1. 转换(C++)(简易)(字符串)

    2024-01-24 14:54:01       51 阅读
  2. C/C++转换

    2024-01-24 14:54:01       53 阅读
  3. C++:万能转换

    2024-01-24 14:54:01       39 阅读
  4. HJ5 转换C语言】

    2024-01-24 14:54:01       53 阅读
  5. 【洛谷 P2084】转换 题解(模拟+字符串

    2024-01-24 14:54:01       49 阅读
  6. (二).数值&转换

    2024-01-24 14:54:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 14:54:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 14:54:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 14:54:01       82 阅读
  4. Python语言-面向对象

    2024-01-24 14:54:01       91 阅读

热门阅读

  1. 旅游MR混合现实情景实训教学系统教学

    2024-01-24 14:54:01       57 阅读
  2. Redis的持久化!!!

    2024-01-24 14:54:01       55 阅读
  3. Relay Arm® 计算库集成

    2024-01-24 14:54:01       48 阅读
  4. 【Qt+SQLite使用】

    2024-01-24 14:54:01       67 阅读
  5. leetcode - 527. Word Abbreviation

    2024-01-24 14:54:01       50 阅读
  6. Spring/Spring boot项目接入traceId

    2024-01-24 14:54:01       45 阅读
  7. C Primer Plus(第六版)13.11 编程练习 第11题

    2024-01-24 14:54:01       48 阅读
  8. Vue学习笔记11--路由2(路由传参/命名路由)

    2024-01-24 14:54:01       43 阅读
  9. 课堂练习3.4:进程的切换

    2024-01-24 14:54:01       48 阅读
  10. 互动直播项目 梳理 自定义视频帧控件 BitmapControl

    2024-01-24 14:54:01       52 阅读
  11. 在Spring Boot中整合MyBatis

    2024-01-24 14:54:01       60 阅读