zoukankan      html  css  js  c++  java
  • 405. Convert a Number to Hexadecimal

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.

    Note:

    1. All letters in hexadecimal (a-f) must be in lowercase.
    2. The hexadecimal string must not contain extra leading 0s. If the number is zero, it is represented by a single zero character '0'; otherwise, the first character in the hexadecimal string will not be the zero character.
    3. The given number is guaranteed to fit within the range of a 32-bit signed integer.
    4. You must not use any method provided by the librarywhich converts/formats the number to hex directly.

    Example 1:

    Input:
    26
    
    Output:
    "1a"
    

    Example 2:

    Input:
    -1
    
    Output:
    "ffffffff"

    Basic idea: each time look at the last four digits of binary verion of the input, and maps that to a hex char shift the input to the right by 4 bits, keep doing it until num == 0.

    time: O(1), space: O(1)

    class Solution {
        public String toHex(int num) {
            if(num == 0) {
                return "0";
            }
            char[] base = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
            StringBuilder sb = new StringBuilder();
            boolean isLeading = true;
            for(int i = 28; i >= 0; i -= 4) {
                int digit = (num >> i) & 15;
                if(digit != 0 || !isLeading) {
                    sb.append(base[digit]);
                    isLeading = false;
                }
            }
            return sb.toString();
        }
    }
  • 相关阅读:
    一个完整的SQL SERVER数据库全文索引的示例
    sqlhelper for access
    解决打开网站弹出下载文件
    18句话入门SQLServer XML
    c# winform 自动关闭messagebox 模拟回车
    jquery json
    用超级巡警批量清除被挂马的网页
    sqlhelper for sql
    SQL XML DML 数据修改
    post方法易错地方
  • 原文地址:https://www.cnblogs.com/fatttcat/p/11404672.html
Copyright © 2011-2022 走看看