当前位置: 首页 > news >正文

每日一题——第一百零九题

题目:进制转换合集。任意r进制与十进制之间的转换

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
long stringToDecimal(const char* str, int base);
void convertToBaseR(int num, int r);int main() {char hexStr[] = "1A3F";char octStr[] = "123";char binStr[] = "101010";printf("十六进制转换成十进制为: %ld\n", stringToDecimal(hexStr, 16));printf("八进制转换成十进制为: %ld\n", stringToDecimal(octStr, 8));printf("二进制转换成十进制为: %ld\n", stringToDecimal(binStr, 2));int num, r;printf("请输入十进制的整数: ");scanf_s("%d", &num);printf("请输入要转化的进制数: ");scanf_s("%d", &r);convertToBaseR(num, r);return 0;
}/// <summary>
/// 将字符串str转为十进制
/// </summary>
/// <param name="str">字符串</param>
/// <param name="base">基数2, 8, 16等</param>
/// <returns></returns>
long stringToDecimal(const char* str, int base) {long result = 0;int multiplier = 1;int length = strlen(str);//从字符串末尾开始解析for (int  i = length - 1; i >= 0; i--){char ch = tolower(str[i]);int digit = -1;//根据字符计算其对应的值if (ch >= '0' && ch <= '9') {digit = ch - '0';//将字符串转换成对应的数字}else if(base == 16 && (ch >= 'a' && ch <= 'f')){digit = ch - 'a' + 10;}else if(ch < '0' || (ch > '9' && base !=16) ||(base == 16) && ch > 'f'){//出错return 0;}//判断是否在有效范围内if (digit >= base) {return 0;}result += digit * multiplier;  //更新累加结果multiplier *= base;//更新下一次计算的基数}}/// <summary>
/// 将十进制数转换成任意的r进制数
/// </summary>
/// <param name="num">数字</param>
/// <param name="r">要转换的目标进制数</param>
void convertToBaseR(int num, int r) {int index = 0;char result[65];//假设转换后的数不超过64位//处理num = 0的情况if (num == 0) {printf("0\n");return;}while (num > 0){int remainder = num % r;if (remainder < 10) {result[index++] = '0' + remainder;//余数小于10的,将其转换成0~9之间的字符}else{result[index++] = 'A' + (remainder - 10);//余数大于10的,将其转换成'A' ~ 'Z' 字符}num = num / r; //更新下一次参与计算的数字}result[index] = '\0'; //在字符串末尾添加结束符//因为结果是从低位到高位存储的,所以需要反向打印for (int i = index; i >= 0; i--){printf("%c", result[i]);}printf("\n");
}

相关文章:

每日一题——第一百零九题

题目&#xff1a;进制转换合集。任意r进制与十进制之间的转换 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> long stringToDecimal(const char* str, int base); void convertToBaseR(int num, int r);int main() {ch…...

街头摊贩检测系统源码分享

街头摊贩检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…...

服务器数据恢复—SAN环境下LUN映射出错导致文件系统一致性出错的数据恢复案例

服务器数据恢复环境&#xff1a; SAN环境下一台存储设备中有一组由6块硬盘组建的RAID6磁盘阵列&#xff0c;划分若干LUN&#xff0c;MAP到不同业务的SOLARIS操作系统服务器上。 服务器故障&#xff1a; 用户新增了一台服务器&#xff0c;将存储中的某个LUN映射到新增加的这台服…...

深度学习:自然语言处理的基本原理

概念&#xff1a; 自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是人工智能和语言学领域的一个分支&#xff0c;它致力于研究如何让计算机能够理解、解释和生成人类语言&#xff0c;以及如何实现人与计算机之间的有效通信。自然语言处理…...

Win10 Chrome浏览器被强制绑定主页的解决办法

Win10 Chrome浏览器被强制绑定主页的解决办法 背景 刚刚重装的系统默认是某杀毒软件&#xff0c;使用浏览器时发现浏览器主页老是hao123&#xff0c;还改不了。于是卸载了此杀毒软件&#xff0c;换了别的。发现还是解决不了浏览器主页被绑定且改不了的问题 体现 chrome://se…...

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第四篇-着色器投影-接收阴影部分】

上一章中实现了体积渲染的光照与自阴影&#xff0c;那我们这篇来实现投影 回顾 勘误 在开始本篇内容之前&#xff0c;我已经对上一章中的内容的错误进行了修改。为了确保不会错过这些更正&#xff0c;同时也避免大家重新阅读一遍&#xff0c;我将在这里为大家演示一下修改的…...

Shell脚本基础——实训项目任务

项目一 项目实训 (初始Shell脚本) 项目一 项目实训 (初始Shell脚本)项目实施任务一 输入输出重定向任务二 数据输入输出操作任务三 Shell变量操作任务四 算术运算符操作任务五 设置环境变量 【实训任务】 本实训的主要任务是通过编写简单的shell脚本&#xff0c;完成使用数据…...

Eclipse Memory Analyzer (MAT)提示No java virtual machine was found ...解决办法

1&#xff0c;下载mat后安装&#xff0c;打开时提示 jdk版本低&#xff0c;需要升级到jdk17及以上版本&#xff0c;无奈就下载了jdk17&#xff0c;结果安装后提示没有jre环境&#xff0c;然后手动生成jre目录&#xff0c;命令如下&#xff1a; 进入jdk17目录&#xff1a;执行&…...

【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器

文章目录 C list 容器详解&#xff1a;从入门到精通前言第一章&#xff1a;C list 容器简介1.1 C STL 容器概述1.2 list 的特点 第二章&#xff1a;list 的构造方法2.1 常见构造函数2.1.1 示例&#xff1a;不同构造方法2.1.2 相关文档 第三章&#xff1a;list 迭代器的使用3.1 …...

植物大战僵尸杂交版V2.5.1下载(最新版)

2.5.1版本更新公告&#xff1a; 在最新的2.5.1版本中&#xff0c;游戏对“两面夹击”关卡进行了多项重要调整。出怪倍率和种类均有所降低&#xff0c;部分关卡的初始阳光量也得到了调整&#xff0c;以增强玩家的策略性。同时&#xff0c;玩家可以在这些关卡中使用投手类植物&a…...

基于nodejs+vue的游戏陪玩系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…...

SVN文件不显示修改状态图标

今天安装试用SVN时发现文件不显示修改状态 以下为解决方法&#xff1a; 1&#xff0c;在有.svn的文件夹中右键--tortoiseSvn--setting 2&#xff0c;选中icon Overlays&#xff0c;右侧的status cache 选shell 3&#xff0c;点击icon set 如下图所示 4&#xff0c;修改icon…...

GB28181语音对讲协议详解

GB28181-2016语音对讲流程如下图1所示&#xff1a; 图1.语音对讲流程。 其中, 信令 1 、2 、 3 、 4 为语音广播通知、 语音广播应答消息流程; 信令 5 、 1 2 、 1 3 、 1 4 、 1 5 、 1 6 为 S I P 服务器接收到客户端的呼叫请求通过 B 2 B UA 代理方式建立语音流接收者与媒…...

JavaScript 数据可视化:前端开发的核心工具

随着互联网和大数据的快速发展&#xff0c;数据呈爆炸式增长&#xff0c;如何有效地展示和理解数据成为了一项关键技能。JavaScript 作为前端开发的主要语言&#xff0c;不仅在构建网页方面无可替代&#xff0c;也在数据可视化领域发挥了重要作用。从简单的图表到复杂的交互式展…...

[Redis][哨兵][上]详细讲解

目录 0.前言1.基本概念1.相关名词解释2.主从复制的问题3.人工恢复主节点故障4.哨兵自动恢复主节点故障 0.前言 说明&#xff1a;该章节相关操作不需要记忆&#xff0c;理解流程和原理即可&#xff0c;用的时候能自主查到即可Redis的主从复制模式下&#xff0c;⼀旦主节点由于故…...

如何展开浏览器开发者模式的Fetch/XHR

说明&#xff1a;大多数程序员都用浏览器的F12&#xff0c;开发者模式查看接口&#xff0c;我也不例外。我常用下面这个选项&#xff0c;它会过滤掉掉其他文档、样式请求&#xff0c;只展示访问服务器的接口请求 有次&#xff0c;不知道点了什么&#xff0c;这个菜单消失找不…...

Pydantic 是一个强大的 Python 库

Pydantic 是一个强大的 Python 库&#xff0c;专门用于数据验证和设置管理。以下是对 Pydantic 的详细介绍&#xff1a; 一、主要功能和特点 数据验证&#xff1a; Pydantic 通过 Python 类型注解来定义数据模型&#xff0c;并自动验证输入数据是否符合预定义的类型和结构。提…...

每日OJ题_牛客_NC40链表相加(二)_链表+高精度加法_C++_Java

目录 牛客_NC40链表相加&#xff08;二&#xff09;_链表高精度加法 题目解析 C代码 Java代码 牛客_NC40链表相加&#xff08;二&#xff09;_链表高精度加法 链表相加(二)_牛客题霸_牛客网 题目解析 模拟⾼精度加法的过程&#xff0c;只不过是在链表中模拟。 C代码 /*…...

Dubbo快速入门(一):分布式与微服务、Dubbo基本概念

文章目录 一、分布式与微服务概念1.大型互联网架构目标2.集群和分布式&#xff08;1&#xff09;集群 (Cluster)&#xff08;2&#xff09;分布式计算 (Distributed Computing)&#xff08;3&#xff09;集群与分布式的关系&#xff08;4&#xff09;实践中的应用案例 3.架构演…...

jmeter性能测试---csv数据文件设置

&#xff08;1&#xff09;什么时候使用CSV数据文件设置&#xff1f; 当不同的用户&#xff0c;或者同一用户多次循环时&#xff0c;都可以获取到不同的值 &#xff08;2&#xff09;使用CSV数据文件设置进行参数化的步骤&#xff1f; 实例&#xff1a; 请求&#xff1a;htt…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...