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

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

题目:进制转换

#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.lryc.cn/news/479222.html

相关文章:

  • 在 CentOS 7 上设置 OpenResty 开机启动
  • 势不可挡 创新引领 | 生信科技SOLIDWORKS 2025新品发布会·苏州站精彩回顾
  • 数仓之全量表、增量表、快照表、切片表、拉链表的基本概念
  • 【富集分析GSEA】如何理解富集分析以及应用
  • 一七五、HTML 不同类型的事件及其说明和示例
  • 数量少的连锁店要不要用智能巡检?
  • 【CSS】外边距塌陷
  • WPF MVVM入门系列教程(二、依赖属性)
  • Springboot集成syslog+logstash收集日志到ES
  • Devops业务价值流:软件研发最佳实践
  • Matplotlib 绘图艺术:从新手到高手的全面指南
  • [ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-windows)
  • SQLI LABS | Less-33 GET-Bypass AddSlashes()
  • 界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置
  • flink 内存配置(一):设置Flink进程内存
  • 贪心算法习题其三【力扣】【算法学习day.20】
  • 速盾:高防cdn针对网站的好处有哪些?
  • 【Java SE语法】抽象类(abstract class)和接口(interface)有什么异同?
  • 京准同步:GPS北斗卫星授时服务器发展趋势介绍
  • 鸿蒙多线程开发——并发模型对比(Actor与内存共享)
  • 【计算机网络】章节 知识点总结
  • 开箱即用!265种windows渗透工具合集--灵兔宝盒
  • 怎么在哔哩哔哩保存完整视频
  • CPU算法分析LiteAIServer视频智能分析平台视频智能分析:抖动、过亮与过暗检测技术
  • fastGPT调用stable diffusion生成图片,本地模型使用ollama
  • 【jmeter】jmeter的线程组功能的详细介绍
  • 高边坡安全监测系统的工作原理和应用领域
  • Java:多态的调用
  • A day a tweet(seventeen)——Visualize Convolution Neural Network!
  • 卡达掐发展史