【Python3】【力扣题】405. 数字转换为十六进制数
【力扣题】题目描述:
题意理解:(不允许使用库函数)
数字等于0,则结果为0,
数字小于0,则补码运算,即最高位(32位)为1,其余全部取反,再加1。相当于2的32次方+负数。
数字大于0,则计算十六进制(解题思路里详细说明)。
注:十六进制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。
(在ASCII码,a对应97)
【Python3】代码:
1、解题思路:基于“题意理解”,数字大于0,求与16的余数,小于10则直接字符串,大于等于10,转为小写字母。与16的商继续求余数,直到数字为0。
知识点:num % 16:求与16的余数,即num除以16的余数。
str(...):转为字符串。
chr(...):将整数转为ASCII中对应字符。
[ ]:空列表。列表:有序、元素可重复、可变的序列。
列表.append(...):往列表末尾中添加元素。
列表.reverse( ):列表倒置,即列表起始元素在末尾,末尾元素在起始位置。
"间隔符".join(列表):将列表转为字符串。间隔符可以为空。
class Solution:def toHex(self, num: int) -> str:if num == 0: return "0"# 负数:(补码运算)最高位为1,其余全部取反再加1# (32位)相当于:2的32次方-负数的绝对值,即2的32次方+负数if num < 0: num += 2 ** 32res = []while num != 0:# 依次求余数m = num % 16# 余数小于10则直接转为字符串if m < 10: astr = str(m)# 余数大于等于10,则转为对应小写字母,(97对应小写字母a)else: astr = chr(m - 10 + 97)res.append(astr)# 求商,继续下一轮求余数num = num // 16# 结果列表倒置res.reverse()return ''.join(res)
2、解题思路:一个十六进制位对应4个二进制位。32位二进制,即8位十六进制,从高到低(从左到右),依次将数字右移4位的倍数与十六进制最大值f进行与运算,依次获得对应的十六进制位。
知识点:num >> n:num二进制右移n位。
num & 15:num与15(即十六进制最大值f)进行二进制与运算。二进制位依次与运算,相同为1,其余为0。依次获得一位十六进制位。
class Solution:def toHex(self, num: int) -> str:if num == 0: return "0"res = []for i in range(7,-1,-1):# 二进制右移,与16进制最大值f求与运算,依次获取一个16进制位val = (num >> (4 * i)) & 15if len(res) > 0 or val > 0:# 小于10则转为字符串,大于等于10则转为对应字母astr = f"{val}" if val < 10 else f"{chr(val - 10 + 97)}"res.append(astr)return ''.join(res)
3、补充:使用库函数,不在本题解题范围之内(本题不允许使用库函数)
(3-1)解题思路:python中库函数format可以将整数转为十六进制。
知识点:1 << 32:1左移32位,相当于2的32次方即2 ** 32。
format(...):字符串格式化。'Ox'是十六进制的开头标识。
class Solution:def toHex(self, num: int) -> str:# 小于0,补码运算if num < 0: num += (1 << 32)# 其余,使用format函数转换return format(num, '0x')
(3-2)解题思路:python中库函数hex可以将十进制转为十六进制。
知识点:hex(...):将十进制转为十六进制。返回结果中含开头标识'Ox'。
序列[2:]:序列(字符串、列表等)中获取从下标2(含)到最后的元素。下标从0开始。
class Solution:def toHex(self, num: int) -> str:# 小于0,补码运算if num < 0: num += (1 << 32)# 其余,使用hex函数转换,去除开头标识'Ox'return hex(num)[2:]
相关文章:

【Python3】【力扣题】405. 数字转换为十六进制数
【力扣题】题目描述: 题意理解:(不允许使用库函数) 数字等于0,则结果为0, 数字小于0,则补码运算,即最高位(32位)为1,其余全部取反,再加…...

记录一次企业外部通过ssh 连接数据库的事DBeaver
情况大概是这样,公司算法供应商开通了连接某个服务器A的权限,但是数据库x是在另一台服务器B上。 直接通过外部连接数据库是不行的,需要借用服务器A来进行访问x 使用软件:DBeaver, 数据库x类型:oracle 需要的信息&am…...

中聚企服:中聚AI女娲大模型,企业难题迎刃而解!
在这个瞬息万变的商业世界里,企业面临的挑战愈发复杂多样。小到日常文书和规章制度,大到工商财税和知识产权保护,每一个环节都至关重要。为了帮助中小企业在激烈的市场竞争中脱颖而出,中聚企服在官方小程序重磅上线了一款革命性产…...
对镜像精简
dive工具,用来优化镜像大小 ENV命令合并 ENV DEBUG_PORT8777 \HTTP_PORT12080 \PROGRAM_FILE_HOME_UPORTAL_CONF/home/zenap/uportal/confWORKDIR usr/src/app,会切换到这个目录 使用COPY --chown 修改属主,不要使用RUN chown 容器内非root…...
老电脑不能装纯净版windows
手上有一台2016年的老笔记本电脑,用了8年,基本上能换的都换了一遍,散热风扇换了,键盘换了,屏幕换了,扬声器也换了,内存也换大了,甚至都换过固态硬盘,但是CPU没法换&#…...
在Python中实现一个简单的社交媒体应用
在Python中实现一个简单的社交媒体应用 社交媒体应用是现代互联网的重要组成部分,允许用户分享信息、交流和互动。在这篇博文中,我们将使用Python构建一个简单的社交媒体应用,涵盖用户注册、发布动态、评论和查看动态等基本功能。我们将使用Flask框架作为后端,SQLite作为数…...

pytest高版本兼容test_data[“log“] = _handle_ansi(“\n“.join(logs))错误
一、问题现象: 执行seleniumpytest结束时报: INTERNALERROR> File "D:\workspace\pytestframe\.venv\Lib\site-packages\pytest_html\report_data.py", line 141, in add_test INTERNALERROR> test_data["log"] _handle_ansi(&q…...

Redis技术入门与实践指南
一、Redis基础知识 1、概念 Redis是一个开源的、遵循BSD协议的、基于内存的而且目前比较流行的键值数据库(key-value database),是一个非关系型数据库,redis 提供将内存通过网络远程共享的一种服务,提供类似功能的 还有memcached࿰…...

如何一键完成20个Oracle实例运维脚本部署
在日常的运维工作中,常常是一个人需要管理维护数个数十个数据库实例,如果是开源类集群如mysql,PG等可能更多;在没有商业的集中管理平台的情况下,如何快速的部署监控或者运维脚本,是一个值得探讨的问题&…...
【C++刷题】力扣-#598-区间加法 II
题目描述 给你一个 m x n 的矩阵 M和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] [ai, bi] 意味着当所有的 0 < x < ai 和 0 < y < bi 时, M[x][y] 应该加 1。 在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。 示…...

优雅的LUA数据记录方法-serpent序列化+LUA Table
目录 简述如何集成?如何使用序列化 反序列化 参考 简述 项目里需要使用LUA脚本将数据记录到文件,要方便的增加、查找、删除,要方便的加载与存回。 使用序列化/反序列化 lua table可以很容易实现这些功能。 序列化将table转换为字符串 反序列…...

初始JavaEE篇——多线程(4):wait、notify,饿汉模式,懒汉模式,指令重排序
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 目录 wait、notify 方法 多线程练习 单例模式 饿汉模式 懒汉模式 指令重排序 wait、notify 方法 wait 和 我们前面学习的sleep…...
Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)
0x01 产品简介 Apache Solr是一个开源的搜索平台,基于流行的Apache Lucene库构建。它提供了一个强大的全文搜索功能,能够快速处理大量数据,并支持复杂的搜索操作。并且是一个独立的企业级搜索应用服务器,它采用Java开发,并基于Apache Lucene实现。Solr提供了类似于Web-Se…...

C#整合Ollama实现本地LLMs调用
前言 近两年AIGC发展的非常迅速,从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型,再到后来的小参数模型,从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化,还有模型的使用方式。…...
C++基于opencv的视频质量检测--图像抖动检测
文章目录 0.引言1. 原始代码分析2. 优化方案3. 优化后的代码4. 代码详细解读 0.引言 视频质量图像抖动检测已在C基于opencv4的视频质量检测中有所介绍,本文将详细介绍其优化版本。 1. 原始代码分析 首先,我们来看图像抖动检测的原始代码: …...
Cuda By Example - 11 (Texture Memory 2-D)
跟1D一样,2D的代码也没有运行过。旧的方法看看就好。 声明二维Texture texture<float, 2> texConstSrc; texture<float, 2> texIn; texture<float, 2> texOut; 访问二维Texture 使用2D的Texture的便利性体现在blend_kernel函数里。不再需要通…...
Go匿名结构体使用场景
1. 定义 在 Go 语言中,匿名结构体(Anonymous Struct)是一种没有显式命名的结构体类型。你可以直接在代码中定义并使用匿名结构体,而不需要为其定义一个单独的类型名称。匿名结构体通常用于临时数据结构或一次性使用的场景。 匿名…...

Vue 发布十年了!你知道我这十年是怎么过的吗?
2014 年 2 月 3 日,Vue 在 Hacker News 上首次亮相。十年后的今天,Vue 已经成为使用最广泛的前端框架之一,拥有了一个非常丰富的生态系统。本文来梳理一下 Vue.js 十年以来的重要里程碑! 尤雨溪,无疑是 Vue.js 背后的灵…...

Unity 6 来袭
这里写自定义目录标题 1.提升渲染性能1.1 降低CPU开销 Lower CPU overhead1.2.减少内存带宽1.3.高档低分辨率帧2.多人游戏创作3.扩大多平台覆盖范围3.1.增进Android平台开发4.使用Runtime AI解锁各种可能性4.1.Unity Muse4.2.Unity Sentis5.实现更具吸引力的视觉效果5.1.自适应…...

SpringMVC课时1
一:SpringMVC Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,负责表述层(控制层)实现简化。 由于 Spring MVC 本身就是 Spring 框架的一部分,和 Spring 框架是无缝集成。 二:SSM的主要作用 三:SpringMVC的原理架构图 …...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...