405. Convert a Number to Hexadecimal

来源:互联网 发布:梅西进球数据 编辑:程序博客网 时间:2024/06/02 01:53

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 library which converts/formats the number to hex directly.



解题思路:

利用递归方式解决,左孩子为右递归,右孩子为左递归。


Java-Solution

public class Solution {    public String toHex(int num) {        if(num == 0)    return "0";        int maxLoop = 8;        StringBuilder result = new StringBuilder();        while(Math.abs((double)num) > 0){            int rightMoved = num & 15;            result.append(assist(rightMoved));            num = num >> 4;            if(--maxLoop == 0){                break;            }        }        return result.reverse().toString();    }        private char assist(int rightMoved){        if(rightMoved >=0 && rightMoved <= 9){            return (char)(rightMoved + '0');        }        else{            return (char)(rightMoved - 10 + 'a');        }    }}


0 0
原创粉丝点击