首页 > 其他分享 >【无标题】

【无标题】

时间:2024-10-26 19:52:36浏览次数:3  
标签:转换 进制 int decimal 无标题 return 十进制

C++有进制表示数字:

一.

1. 十进制(Decimal):使用普通的数字表示法,例如123。
2. 二进制(Binary):使用前缀0b或0B表示,例如0b101。
3. 八进制(Octal):使用前缀0表示,例如037。
4. 十六进制(Hexadecimal):使用前缀0x或0X表示,例如0xFF。

在C++中,可以在数字前面加上适当的前缀来表示不同的进制。例如:

```cpp
int decimal = 123;       // 十进制
int binary = 0b101;     // 二进制
int octal = 037;       // 八进制
int hexadecimal = 0xFF;   // 十六进制
```

需要注意的是,存储在计算机中的数字本质上是二进制表示的,不论我们用什么进制来表示它们。C++中的进制表示法主要是为了方便程序员理解和编写代码。

怎么从一个进制转换到另一个进制:

要将一个数从一个进制转换为另一个进制,可以使用以下步骤:

1. 将原始数从源进制转换为十进制。
2. 将十进制数从十进制转换为目标进制。

二.

以下是C++代码示例,演示了如何从一个进制转换到另一个进制:

```cpp
#include<iostream>
#include<string>
#include<algorithm>

using namespace std;

// 将字符转换为对应的数字
int charToDigit(char c) {
    if (isdigit(c)) {
        return c - '0';
    } else {
        return 10 + (toupper(c) - 'A');
    }
}

// 将数字转换为对应的字符
char digitToChar(int digit) {
    if (digit < 10) {
        return digit + '0';
    } else {
        return digit - 10 + 'A';
    }
}

// 将原始数从源进制转换为十进制
int convertToDecimal(string num, int base) {
    int decimal = 0;
    int pow = 1;

    // 从右到左遍历字符串,将字符转换为对应的数字并计算十进制值
    for (int i = num.length() - 1; i >= 0; i--) {
        decimal += charToDigit(num[i]) * pow;
        pow *= base;
    }

    return decimal;
}

// 将十进制数从十进制转换为目标进制
string convertFromDecimal(int decimal, int base) {
    string result = "";

    // 不断除以目标进制,将余数转换为对应的字符并构建目标进制数的字符串
    while (decimal > 0) {
        int remainder = decimal % base;
        result += digitToChar(remainder);
        decimal /= base;
    }

    // 反转字符串以得到正确的顺序
    reverse(result.begin(), result.end());

    return result;
}

int main() {
    string num;
    int sourceBase, targetBase;

    // 读取输入
    cout << "请输入原始数:";
    cin >> num;
    cout << "请输入源进制:";
    cin >> sourceBase;
    cout << "请输入目标进制:";
    cin >> targetBase;

    // 将原始数从源进制转换为十进制
    int decimal = convertToDecimal(num, sourceBase);

    // 将十进制数从十进制转换为目标进制
    string result = convertFromDecimal(decimal, targetBase);

    // 输出结果
    cout << "转换结果为:" << result << endl;

    return 0;
}
```

这段代码首先会要求用户输入原始数、源进制和目标进制。然后,它会将原始数从源进制转换为十进制,再将十进制数从十进制转换为目标进制。最后,它会输出转换的结果。

请注意,这段代码仅处理了十进制以下的进制转换,即进制范围为2到16。如果需要处理更高的进制,可以相应地扩展`charToDigit`和`digitToChar`函数的实现。

标签:转换,进制,int,decimal,无标题,return,十进制
From: https://blog.csdn.net/ticketsge/article/details/143258619

相关文章

  • 【无标题】
    今天发个避坑帖!首先看看下面这种收益图,你们肯定见过不少!‘割割’们让你上车,必须得有一些吸引你的东东啊,不然怎么割你吗?其实这种截图都是软件生成的,我网站上分享过非常多的类似软件,什么聊天记录生成的啊,什么ZFB,微信零钱转账记录,余额多少啊。。。。。都可以生成。像这种......
  • 【无标题】创业路上需要你的支持
         大家好!       时光荏苒,岁月如梭,转眼间,创建app已经和大家携手共度了七十多个日夜。回望这段历程,我们共同见证了一个从无到有的起步与发展。在这里,我向每一位用户表达最真挚的感谢,是您的陪伴与支持,让我这个项目得以茁壮成长。       一个人的成功......
  • 【无标题】STM32 的中断系统
       中断概述 在主程序运行过程中, 出现了特定事件, 使得 CPU 暂停当前正在运行的程序, 转而去 处理这个事件, 等这个事件处理完成之后, CPU 再回到刚才被打断的位置继续处理, 这就 是中断。 那个打断 CPU 执行的特定事件, 我们一般称之为中断源。 被中断源打断......
  • 【无标题】
    ajaxajax快速上手constxhr=newXMLHttpRequest();//初始化//get请求xhr.open("GET","url");//当满足同源策略时可简写//发送请求xhr.send();//事件绑定xhr.onreadystatechage=function(){ if(xhr.readystate===4){//完全响应 if(xhr.state>=200&&xhr.state<3......
  • 面试官问:你如何处理与同事或上级的分歧?【无标题】
    面试官问:你如何处理与同事或上级的分歧?当面试官问你如何处理与同事或上级的分歧,其实面试官的目的是评估你的沟通技巧、冲突解决能力和团队合作的能力。在一起共事,就一定有分歧发生,有争执是正常的,关键是看如何去解决问题。考察的事候选人在面对不同意见时的态度,且能不能有效的......
  • 【无标题】
    Spring的异步任务@Async注解用于标注一个方法为异步执行。当调用这个方法时,Spring会启动一个新线程来执行该方法,而调用者不必等待其执行完成。通过@EnableAsync注解启用Spring的异步功能。这个注解通常标注在配置类上。异步方法可以返回void类型Future<T>类型:用于......
  • 【无标题】
    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据......
  • 【无标题】高等数学
     第一章 函数与极限    第一节 映射与函数       一、集合          1.集合概念            集合是数学中的一个基本概念,我们先通过例子来说明这个概念。例如,一个书柜中的书构成一个集合,一间教室......
  • 【无标题】摩羯台风来袭:自然界的力量,人类的应对与坚韧
    摩羯台风,这是一个令人畏惧的自然力量的名字,也是近年来频繁出现的台风之一。每当摩羯台风登陆,无论是在大陆还是岛屿,都会带来强烈的风雨和破坏性的影响。而且,摩羯台风往往伴随着巨大的海浪和潮汐,给沿海地区带来了巨大的灾害。为什么摩羯台风的威力如此之大?首先,摩羯台风的风速非......
  • 【无标题】
    单选题第11/60题自动跳下一题0以下哪份代码可以实现下图Grid布局A.通过设置不同Gridltem的宽度//xxx.ets@Entry@ComponentstructGridExample3{numbers:String[]■['0','1','2','3','4','5','6','7','......