题目:2-62进制转换

题目介绍:输入一个n1 进制的整数(包括负数),将其转换成n2 进制,其中n1 、n2 的范围是 [ 2,62 ] 。每个数字的范围是0-9、a-z、A-Z。不用考虑非法输入。

输入:

n1 n2

n1 进制整数

输出:

n2 进制整数

例:

输入:

8 16

-1352460

输出:

-5d530

分析:

这道题目需要考虑几点:负整数的输入;将输入的n1 进制的数转换成10 进制的数,再用长除法将这个10 进制的数转换成 n2 进制的数;a-z和A-Z与其代表的整数的相互转换(char 类型的ASC||码与整数的变换)。

代码如下:

 #include <iostream>
#include <string>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
string str;
int size;
int i = ;
int result = ;
int n = ;
int r[];//长除法
char q[];
int n1, n2;
cout << "n1.n2" << endl;
cin >> n1 >> n2;
cout << "str" << endl;
cin >> str;
size = str.size();
char *p = new char[size];
strcpy(p, str.c_str());
if (p[] == '-') { p[] = ''; }//考虑到负数
for (i = ; i < size; i++)
{
if (p[i] >= 'a'&&p[i] <= 'z')
{
p[i] = p[i] - ;
}
if (p[i] >= 'A'&&p[i] <= 'Z')
{
p[i] = p[i] + ;
}
}//将a-z的字符意义化a=10、···
for (i = ; i < size; i++)
{
result += int(p[i] - ) * int(pow(n1, size - - i));
}
cout << result << endl;//计算十进制值
while ((result / n2) >= n2)
{
r[n] = result % n2;
result = result / n2;
n++;
}
r[n] = result % n2;
n++;
r[n] = result / n2;//取余取除值
for (i = ; i < (n + ); i++)
{
if (r[i] >= &&r[i]<=) { q[i] = r[i]+; }//a-z的输出转换
else if (r[i] >=&&r[i]<=) { q[i] = r[i]+; }//A-Z的输出转换
else { q[i] = char(r[i] + ); }//0-9转换
}
if (p[] == '') { cout << "-"; }//负数还原
for (i = ; i < (n + ); i++)
{
cout << q[n - i];
}
}

结果如图:其中输出的第二行为10 进制的该数。

华为笔试——C++进制转换的更多相关文章

  1. SQL Server 进制转换函数

    一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...

  2. [No000071]C# 进制转换(二进制、十六进制、十进制互转)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. JS中的进制转换以及作用

    js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ...

  4. 结合stack数据结构,实现不同进制转换的算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...

  5. 进制转换( C++字符数组 )

    注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...

  6. JS 进制转换

    十进制转换成其他进制 objectname.toString([radix])   objectname 必选项.要得到字符串表示的对象. radix 可选项.指定将数字值转换为字符串时的进制. 例如 ...

  7. php的进制转换

    学习了php的进制转换,有很多的知识点,逻辑,也有最原始的笔算,但是我们还是习惯使用代码来实现进制的转换,进制的转换代码有如下:二进制(bin)八进制( oct)十进制( dec)十六进制( hex) ...

  8. C++ 中数串互转、进制转换的类

    /******************************************************************** created: 2014/03/16 22:56 file ...

  9. 【String与基本类型之间的转换】以及【进制转换】

    1. 基本数据类型---->字符串类型: 方法一:使用连接一个空字符串,例如  基本数据类型+“” : 方法二:静态方法 String.valueOf(),具体有: String.valueOf ...

随机推荐

  1. css让不同大小的图片适应div的大小,且不变形。

    做成背景图片 单个 .imgdiv { width: 100px; // 你要的正方形 height: 100px; // 你要的正方形 background-image: url(/your/ima ...

  2. Python 学习笔记(十五)Python类拓展(二)方法

    方法 绑定方法和非绑定方法 绑定方法和非绑定方法在创建时没有任何区别,同一方法,既可以为绑定方法,也可以为非绑定方法,一切不同都只在调用时的手法上有所区别. 绑定方法即该方法绑定类的一个实例上,必须将 ...

  3. 使用XWAF框架(3)——下载文件

    XWAF提供了HttpFileDownloader类用于简化用户下载文件的编码.该类提供了重载方法“downloadFile(String filePath, String fName)”实现下载.程 ...

  4. [iOS]一些第三方库

    BHInfiniteScrollView 地址 https://github.com/qylibohao/BHInfiniteScrollView 功能 图片轮播 TZImagePickerContr ...

  5. jQuery添加标签实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. K8s集群安装和检查(经验分享)

    一.组件方式检查 1. Master节点: root>> kubectl get cs 2. Node 节点: 无  二.服务方式检查 1. Master 节点: root>> ...

  7. MongoDB模糊查询 工具

    {"Exception":{$regex:"定时发送邮件"}}    //模糊查询条件 {"DateTime":-1}         // ...

  8. 基于JQ的自定义弹窗组件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 大数据学习--day12(内部类)

    内部类学习     定义在类的内部的类  叫做内部类     包含了内部类的类 叫做外部类 内部类的作用      内部类是为了 实现 java中 多继承而存在的      内部类 可以继承其他类   ...

  10. 20155339 《信息安全技术》实验二、Windows口令破解实验报告

    20155339 <信息安全技术>实验二.Windows口令破解实验报告 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 系统环境 Windo ...