美文网首页
C++从任意进制的数转换成另外一个指定进制的数的代码

C++从任意进制的数转换成另外一个指定进制的数的代码

作者: hahamama | 来源:发表于2020-06-09 11:28 被阅读0次

下面内容内容是关于C++从任意进制的数转换成另外一个指定进制的数的内容,应该是对各位朋友有些用处。

#include <iostream>

#include <string>

std::string conv(std::string number, int startBase, int endbase);

long long power(int num, int pow);

int main(void){

    std::string binary = "11010010";

    std::cout << "Start Base: Binary (" << binary << ")" << std::endl;

    std::cout << "Octal:tt" << conv(binary, 2, 8) << std::endl;

    std::cout << "Decimal:t" << conv(binary, 2, 10) << std::endl;

    std::cout << "Hexadecimal:t" << conv(binary, 2, 16) << std::endl << std::endl;

    std::string octal = "81";

    std::cout << "Start Base: Octal (" << octal << ")" << std::endl;

    std::cout << "Binary:tt" << conv(octal, 8, 2) << std::endl;

    std::cout << "Decimal:t" << conv(octal, 8, 10) << std::endl;

    std::cout << "Hexadecimal:t" << conv(octal, 8, 16) << std::endl << std::endl;

    std::string decimal = "41";

    std::cout << "Start Base: Decimal (" << decimal << ")" << std::endl;

    std::cout << "Binary:tt" << conv(decimal, 10, 2) << std::endl;

    std::cout << "Octal:tt" << conv(decimal, 10, 8) << std::endl;

    std::cout << "Hexadecimal:t" << conv(decimal, 10, 16) << std::endl << std::endl;

    std::string hexadecimal = "A9";

    std::cout << "Start Base: Hexadecimal (" << hexadecimal << ")" << std::endl;

    std::cout << "Binary:tt" << conv(hexadecimal, 16, 2) << std::endl;

    std::cout << "Octal:tt" << conv(hexadecimal, 16, 8) << std::endl;

    std::cout << "Decimal:t" << conv(hexadecimal, 16, 10) << std::endl << std::endl;

    return 0;

}

std::string conv(std::string number, int startBase, int endBase){

    if(startBase > 16 || endBase > 16) return "BASE ERROR";

    char NUMS[] = "0123456789ABCDEF";

    std::string result = "";

    int temp = 0, x;

    bool found = false;

    for(int i = 0; i < number.length(); i++){

        for(x = 0; x < startBase; x++){

            if(NUMS[x] == number[number.length()-(i+1)]){

                found = true;

                break;

            }

        }

        if(!found) return "NUMBER ERROR";

    }

    do{

        result.push_back(NUMS[temp%endBase]);

        temp /= endBase;

    }while(temp != 0);

    return std::string(result.rbegin(), result.rend());

}

long long power(int num, int pow){

    if(pow == 0) return 1;

}

相关文章

  • C++从任意进制的数转换成另外一个指定进制的数的代码

    下面内容内容是关于C++从任意进制的数转换成另外一个指定进制的数的内容,应该是对各位朋友有些用处。 #includ...

  • 任意十进制转任意进制

    输入一个十进制数N,将它转换成R进制数输出。

  • (3)进制转换 矩阵转置 字符处理

    通信 1.进制转换 (1)十进制数转换为其他进制数一个十进制正整数m转换成r进制数的思路是,将m不断除以r取余数,...

  • python 进制转换

    如何表示二进制 任意进制之间的转换 任意进制转换成二进制--bin 任意进制转换成十进制--int 3.任意进制转...

  • 进制转换

    题目:任意输入一个数,输入你想转换成二进制,然后显示转换后的结果

  • 9.3 函数 :任意进制输出[递归]

    编写函数to_base_n(),输入任意十进制正整数和进制数,然后按照指定进制输出输入样例 输出样例 示例程序

  • 基础知识

    二进制的转换 10进制转化成2进制 1.一般我们用到的数1.2...100,都是10进制的数,如何转换成2进制呢用...

  • 数制及数据转换

    1.对应关系表: 2.不同数制间的数据转换 (1)转换成十进制 (2)二进制数、八进制数和十六进制数之间的转换 八...

  • php 36进制与10进制转换

    在追求更短的数字排序时我们常会用到36进制 /** * @desc im:十进制数转换成三十六进制数 * @par...

  • Java实现任意进制转换

    直接看代码, 以实现25进制的数转化为16进制的数为例:思路是:经过一次转换,先将25进制的数转化为10进制,再将...

网友评论

      本文标题:C++从任意进制的数转换成另外一个指定进制的数的代码

      本文链接:https://www.haomeiwen.com/subject/gcrstktx.html