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

leetcode 405. 数字转换为十六进制数

  • 题目描述
  • 解题思路
  • 执行结果
leetcode 405. 数字转换为十六进制数.


题目描述

  1. 数字转换为十六进制数

给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。

注意:

十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。 不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。 示例 1:

输入: 26

输出: "1a" 示例 2:

输入: -1

输出: "ffffffff"

解题思路

法1

方法1:位运算\

  1. 将数字与二进制的(1111)与操作得到的数字转化为16进制
  2. 将数字右移4位N>>4
  3. 循环1的操作并拼接字符串,直到n==0为止,输出结果
  4. 注意:就是int类型直接右移会带上符号,就是(-1>>4==-1)所以我们在操作的时候要先将其转换为无符号整型进行右移
  • 时间复杂度(O(n))
  • 空间复杂度(O(1))

执行结果

法1

func toHex(num int) string {
    if num == 0 {
        return "0"
    }
    hex := "0123456789abcdef"
    res := ""
    for num != 0 {
        res = string(hex[num & 0xf]) + res
        num = int(uint32(num) >> 4)
    }
    return res
}

执行结果: 通过 显示详情 查看示例代码 添加备注

执行用时: 0 ms , 在所有 Go 提交中击败了 100.00% 的用户 内存消耗: 1.9 MB , 在所有 Go 提交中击败了 10.42% 的用户 通过测试用例: 100 / 100 炫耀一下:

优化

申请一个uint32变量来存储num数值,这样就不用转来转去了

func toHex(num int) string {
 if num == 0 {
  return "0"
 }
 hex := "0123456789abcdef"
 n := uint32(num//申请一个变量来存储数值,这样就不用转来转去了
 res := ""
 for n != 0 {
  res = string(hex[num&0xf]) + res
  n >>= 4
 }
 return res
}

本文由 mdnice 多平台发布

http://www.lryc.cn/news/65703.html

相关文章:

  • 部门来了个软件测试,听说是00后,上来一顿操作给我看呆了...
  • 使用篇丨链路追踪(Tracing)很简单:链路拓扑
  • 2023年厦门等保二级备案办理流程
  • 提高开发效率,从这些小技巧开始——5个让你爱上IDEA的增加体验小技巧
  • Python基础合集 练习22 (错误与异常处理语句2)
  • ELK -- kibana 用nginx代理后无法访问
  • 什么是分布式事务
  • 在 Python 中将整数转换为罗马数字
  • HashTable,Properties,TreeSet源码分析
  • 多维图像去噪方法研究
  • 托福口语考察内容和形式
  • 【地铁上的设计模式】--结构型模式:代理模式
  • Oracle 体系结构
  • java手写日历系统(亲测)
  • 35-40的技术人员为什么会被“不友好”,请你们自身反思-拒做职场的“嗯嗯”怪
  • 工地烟火AI监控识别分析系统 yolov7
  • MATLAB算法实战应用案例精讲-【人工智能】对比学习(概念篇)(补充篇)
  • 代码随想录算法训练营第三十一天 | 贪心1,想不到怎么找局部最优就做不出来
  • 【SVN】版本控制管理的文件(夹)如何重命名
  • 必须包含数字,字母组合的密码正则表达式
  • JavaScript:栈和对列
  • [数据库系统] 一、创建表以及使用主键约束(educoder)
  • 《走进对象村4》之面向对象的第一大特性——封装
  • 罗马数字转整数、整数转罗马数字----2023/5/4
  • 2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。
  • QT Android QTextEdit 复制粘贴文本后出现多余数据问题
  • 知识变现海哥:你为什么努力却不富有,大概率是你不懂这个道理
  • 【Mybatis】增删改查
  • 20230504----重返学习-vue2项目-跳转拦截-重定向并返回前一页-使用vuex调用接口-全选与全不选-总价计算
  • (异或相消)猫猫数字异或和