Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

进制转换c++代码

作者:冷言寡语   发布日期:2025-10-29   浏览:9

#include <iostream>
#include <string>
#include <cmath>

using namespace std;

// 将十进制整数转换为任意进制字符串
string decimalToBase(int num, int base) {
    if (base < 2 || base > 36) return "Invalid base"; // 进制范围检查

    string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    string result = "";
    bool isNegative = num < 0;

    if (isNegative) num = -num; // 处理负数

    do {
        result = digits[num % base] + result;
        num /= base;
    } while (num != 0);

    if (isNegative) result = "-" + result;

    return result;
}

// 将任意进制字符串转换为十进制整数
int baseToDecimal(const string& numStr, int base) {
    if (base < 2 || base > 36) return -1; // 进制范围检查

    string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int result = 0;
    int sign = 1;
    size_t start = 0;

    if (numStr[0] == '-') {
        sign = -1;
        start = 1;
    }

    for (size_t i = start; i < numStr.length(); ++i) {
        char c = toupper(numStr[i]);
        int digit = digits.find(c);
        if (digit == string::npos || digit >= base) return -1; // 非法字符或超出进制范围
        result = result * base + digit;
    }

    return result * sign;
}

int main() {
    // 示例:将十进制数转换为二进制、八进制、十六进制
    cout << "Decimal 255 to Binary: " << decimalToBase(255, 2) << endl;
    cout << "Decimal 255 to Octal: " << decimalToBase(255, 8) << endl;
    cout << "Decimal 255 to Hexadecimal: " << decimalToBase(255, 16) << endl;

    // 示例:将二进制、八进制、十六进制转换为十进制
    cout << "Binary 11111111 to Decimal: " << baseToDecimal("11111111", 2) << endl;
    cout << "Octal 377 to Decimal: " << baseToDecimal("377", 8) << endl;
    cout << "Hexadecimal FF to Decimal: " << baseToDecimal("FF", 16) << endl;

    return 0;
}

解释说明:

  1. decimalToBase 函数

    • 该函数用于将十进制整数 num 转换为指定进制 base 的字符串表示。
    • 支持的进制范围为 2 到 36(包括字母 A-Z 表示 10-35)。
    • 处理负数情况,先将负数转换为正数进行处理,最后再加负号。
  2. baseToDecimal 函数

    • 该函数用于将任意进制的字符串 numStr 转换为十进制整数。
    • 支持的进制范围为 2 到 36。
    • 处理负数和非法字符的情况。
  3. main 函数

    • 包含了一些示例代码,演示如何使用上述两个函数进行进制转换。
    • 输出了将十进制数 255 转换为二进制、八进制和十六进制的结果。
    • 同时也展示了将二进制、八进制和十六进制字符串转换回十进制的结果。

上一篇:c++ 获取系统时间

下一篇:c++freopen怎么用

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

队列c++

c++freopen怎么用

进制转换c++代码

c++ 获取系统时间

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站