每日一题——第一百二十四题

ops/2024/11/13 23:57:54/

题目:进制转换

#pragma once#include<stdio.h>
#include<ctype.h>
#include<string.h>/// <summary>
/// //将字符串表示的任意进制数转为十进制
/// </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 len = strlen(str);//从字符串末尾开始解析for (int i = len - 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;}return result;}/// <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");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 ~ F之间的字符}num /= r;//更新下一次计算的数字num}result[index] = '\0';//在字符串末尾添加字符串结束符//由于是从低位到高位存, 所以反向打印for (int i = index - 1; i >= 0; i--){printf("%c", result[i]);}printf("\n");
}

http://www.ppmy.cn/ops/133412.html

相关文章

【游戏引擎之路】登神长阶(十三)——Vulkan教程:讲个笑话:离开舒适区

【游戏引擎之路】登神长阶&#xff08;十三&#xff09;——Vulkan教程&#xff1a;讲个笑话&#xff1a;离开舒适区 2024年 5月20日-6月4日&#xff1a;攻克2D物理引擎。 2024年 6月4日-6月13日&#xff1a;攻克《3D数学基础》。 2024年 6月13日-6月20日&#xff1a;攻克《3D…

Redis相关技术内容

1. Redis整体的技术全景 应用场景&#xff1a;数据结构的应用、缓存应用、集群应用 底层原理&#xff1a;线程模型、主从复制、负载均衡 ​ 数据结构、哨兵机制、数据分片 ​ AOF、 RDB 2. 并发承载 redis&#xff08;官方 10w/s&#xff09;数据库->mysql 并发范围&…

AI大模型开发架构设计(18)——基于大模型构建企业知识库案例实战

文章目录 1 LLM 大模型在工作中的实际应用以及局限性LLM 大模型工作中实际应用大模型2点局限性 2 基于大模型和向量数据库的企业级知识库架构剖析向量数据库向量数据库选型知识库文档检索增强(Retrieval Augmented Generation)向量数据库应用技术总体架构向量数据库应用离线索引…

Python的装饰器

一、概念 在Python中&#xff0c;装饰器本质是一个特殊的嵌套函数&#xff0c;它接收一个函数&#xff08;被装饰的函数&#xff09;做参数&#xff0c;并返回一个新的函数&#xff08;装饰后的函数&#xff09; 装饰器最大的作用&#xff1a;在不改变原有的函数&#xff08;…

Vue.js动态组件使用

在 Vue.js 中&#xff0c;动态组件是一种功能强大的特性&#xff0c;它允许你在同一个挂载点根据条件动态地切换不同的组件。这通常通过 Vue 的 <component> 元素和 is 特性来实现。以下是如何在 Vue 3 中使用动态组件的详细指南&#xff1a; 基本用法 定义组件&#xf…

后端:Aop 面向切面编程

文章目录 1. Aop 初步学习面向切面编程&#xff0c;EnableAspectJAutoProxy2. AOP的核心概念3. 前置通知&#xff08;Before&#xff09;4. 后置通知&#xff08;After&#xff09;5. 返回通知&#xff08;AfterReturning&#xff09;6. 异常通知&#xff08;AfterThrowing&…

VMware+Ubuntu+finalshell连接

安装教程&#xff1a;博客链接 下载地址&#xff1a;VMwareubuntu finalshell官网下载&#xff1a;finalshelll

计算用户订购率梧桐数据库和oracle数据库sql分析

一、背景说明 移动运营商平台提供多种类型的产品权益&#xff0c;用户可以通过订购来使用。平台需要定期统计各个产品的用户订购情况&#xff0c;以便了解各个产品的受欢迎程度。这些统计数据将用于优化产品、提升用户体验和制定市场推广策略。 二、表结构说明 梧桐数据库建…