这是悦乐书的第219次更新,第231篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405)。给定一个整数,写一个算法将其转换为十六进制。对于负整数,使用二进制补码方法。例如:

输入:26
输出:“1a”

输入:-1
输出:“ffffffff”

注意

  • 十六进制(a-f)中的所有字母必须为小写。

  • 十六进制字符串不得包含额外的前导0。如果数字为零,则由单个零字符“0”表示;否则,十六进制字符串中的第一个字符将不是零字符。

  • 保证给定数字适合32位有符号整数的范围。

  • 您不得使用库提供的任何方法将数字直接转换或者格式化为十六进制。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

直接使用包装类Integer的toHexString方法,将num转为16进制字符串。

public String toHex(int num) {return Integer.toHexString(num);
}

03 第二种解法

此解法的思路来自于String toHexString(int i)的源代码,先将16进制所用到的字符放入一个字符数组,从'0'到'f'依次排列,再定义一个字符串。先将num和15进行与(&)运算,与运算的规则是同1为1,即将num转为二进制数和二进制数1111做运算,得到的结果即为对应字符数组中的第几位字符,然后将num无符号右移4位,只要num不等于0,就一直循环计算。最后返回result。

核心思路是每次取出最右边的四位进行与运算。

public String toHex2(int num) {if (num == 0) {return "0";}char[] ch = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};String result = "";while (num != 0) {result = ch[num&15] + result;num >>>= 4;}return result;
}

04 小结

算法专题目前已连续日更超过两个月,算法题文章86+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

转载于:https://www.cnblogs.com/xiaochuan94/p/10212249.html

LeetCode算法题-Convert a Number to Hexadecimal(Java实现)相关推荐

  1. LeetCode算法题-Reach a Number(Java实现)

    这是悦乐书的第310次更新,第331篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第179题(顺位题号是754).你站在无限数字线的0号位置.在目的地有个target.在 ...

  2. 【LeetCode】405 Convert a Number to Hexadecimal (java实现)

    2019独角兽企业重金招聘Python工程师标准>>> 原题链接 https://leetcode.com/problems/convert-a-number-to-hexadeci ...

  3. LeetCode算法题17:电话号码的字母组合(Java版)

    LeetCode传送门:电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: ...

  4. LeetCode算法题-Number Complement(Java实现-五种解法)

    这是悦乐书的第240次更新,第253篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第107题(顺位题号是476).给定正整数,输出其补码数.补充策略是翻转其二进制表示的位 ...

  5. Leetcode算法题-解法转载

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/fuxuemingzhu/article/details/85112591 作者: 负雪明烛 i ...

  6. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  7. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  8. leetcode算法题--零钱兑换

    原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...

  9. leetcode算法题-- 买卖股票的最佳时机

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...

最新文章

  1. phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)
  2. 离散数学 消解算法判断合取范式的可满足性
  3. Swift 中如何测试驱动开发
  4. gitlab安装以及操作文档
  5. OpenCv调用摄像头拍照代码
  6. windows 安装 zabbix agent 客户端
  7. AI 专利之争:小米超华为,国家电网才是大 Boss?
  8. [转] boost undefined reference to 'pthread_create 问题
  9. 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数
  10. re.split() 根据句子中的序号进行切分
  11. sql生成(查询数据的存储过程)代码的存储过程
  12. 百度人脸识别:功能开通
  13. 各种JS模板引擎对比数据(高性能JavaScript模板引擎)
  14. OSPF(七)OSPF特殊区域之NSSA和Totally NSSA详解及配置
  15. Python的IDLE无法打开
  16. 大数据会议资料学习笔记201402
  17. 电动汽车巨作|新能源汽车简史:电动汽车沉浮录
  18. 计算机图片颜色是红色怎么办,电脑变色是怎么回事?(有图片)
  19. minui点击分页控件后滚动条置顶
  20. 如何使用DDexec在Linux上隐蔽运行二进制文件

热门文章

  1. cdmp不停增长 oracle_系统内存不足导致oracle进程被误杀terminating the instance due to error 822...
  2. linux 路由器去广告,linux – 如何正确发送路由器广告?
  3. rust投递箱连接箱子_灭火器箱存在的必要性
  4. python知识体系_python学习知识体系梳理
  5. docker redis集群搭建_Redis集群模式搭建
  6. a类不确定度计算器_统统帮您搞定:LIMS系统,换版、内审、期间核查、不确定度、数据分析…………...
  7. android 获取网卡mac_在Android机顶盒上 怎么样获取有线网卡MAC地址?
  8. php类的测试用例,快速入门:集成 PHPUnit 编写测试用例
  9. java中集合的模型特点_Java 学习笔记(十四)集合
  10. 如果输送知识不再重要,那么教育问题出在哪里?