[LeetCode][c++][LeoLiuX]405. Convert a Number to Hexadecimal

来源:互联网 发布:java 平台架构 编辑:程序博客网 时间:2024/05/13 05:32
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 library which converts/formats the number to hex directly.

Example 1:

Input:26Output:"1a"

Example 2:

Input:-1Output:"ffffffff"
题目简介:一目了然,十进制数转换16进制,负数需用补码形式转换。
Easy难度的题,直接想到位操作。将32位数4位一组进行转换。
代码如下:
class Solution {public:    string toHex(int num) {        string result = "";        string hexTable = "0123456789abcdef";        for (int i=0; i<8; i++){            result = hexTable[num & 15] + result;            num >>= 4;        }        while (result[0]=='0' && result.length() != 1){            result = result.substr(1,result.length()-1);        }        return result;    }};

0 0
原创粉丝点击