您当前的位置: 首页 >  leetcode

星许辰

暂无认证

  • 0浏览

    0关注

    466博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

LeetCode_位运算_简单_405.数字转换为十六进制数

星许辰 发布时间:2022-08-01 09:22:18 ,浏览量:0

目录
  • 1.题目
  • 2.思路
  • 3.代码实现(Java)

1.题目

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

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

示例 1: 输入: 26 输出: “1a”

示例 2: 输入: -1 输出: “ffffffff”

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/convert-a-number-to-hexadecimal

2.思路

(1)位运算

3.代码实现(Java)
//思路1————位运算
class Solution {
    public String toHex(int num) {
        if (num == 0) {
            return "0";
        }
        StringBuilder builder = new StringBuilder();
        // int 类型的二进制整数有 32 位,故只需遍历 8 组 4 个二进制位
        for (int i = 7; i >= 0; i--) {
            // 从高位开始转换
            int value = (num >> (4 * i)) & 0xf;
            if (builder.length() > 0 || value > 0) {
                char digit;
                if (value             
关注
打赏
1665627467
查看更多评论
0.0381s