LeetCode 405 Convert a Number to Hexadecimal
来源:互联网 发布:大学生网络家教兼职 编辑:程序博客网 时间:2024/06/06 18:52
题目:
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.
Note:
- All letters in hexadecimal (
a-f
) must be in lowercase. - The hexadecimal string must not contain extra leading
0
s. 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. - The given number is guaranteed to fit within the range of a 32-bit signed integer.
- 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"题目链接
题意:
给一个int的整型数,需要将其转化为16进制表示的字符串,要求负数用补码来表示。给出了四点注意事项:
- 所有字母a-f全部小写。
- 不允许前置0,除非值为0.
- 所给的数保证在32位int的范围内。
- 不得使用库函数来转换进制。
补码的 有关概念,百科给出其特点为:
- 一个负整数或原码与其补数相加,和为模。
- 对一个整数的补码再求补码,等于该证书本身。
- 补码的正零与负零表式方法相同。
第一次写的时候采用特点一的思路,拿到num,对其判断是否为负,假如为负,则用ffffffff+1减去该数,注意这里ffffffff应为unsign,并且+1的位置应在减去abs(num)之后。
代码如下:
class Solution {public: string totoHex(unsigned num) { // 将unsign转化为hex char HEX[] = "0123456789abcdef"; string ans; while (num) { ans.push_back(HEX[num % 16]); num /= 16; } reverse(ans.begin(), ans.end()); return ans; } string toHex(int num) { unsigned t = num; if (!num) return "0"; else if (num < 0) { unsigned temp = 4294967295; t = temp - abs(num) + 1; } return totoHex(t); }};
class Solution {public: string totoHex(unsigned num) { char HEX[] = "0123456789abcdef"; string ans; while (num) { ans.push_back(HEX[num % 16]); num /= 16; } reverse(ans.begin(), ans.end()); return ans; } string toHex(unsigned num) { return num ? totoHex(num) : "0"; }};
阅读全文
0 0
- LeetCode 405 Convert a Number to Hexadecimal
- LeetCode[405] Convert a Number to Hexadecimal
- LeetCode #405: Convert a Number to Hexadecimal
- Leetcode 405 Convert a Number to Hexadecimal
- Leetcode Convert a Number to Hexadecimal 405
- Leetcode 405: Convert a Number to Hexadecimal
- LeetCode 405 Convert a Number to Hexadecimal
- [Leetcode] Convert a Number to Hexadecimal
- [LeetCode]Convert a Number to Hexadecimal(Java)
- LeetCode 405. Convert a Number to Hexadecimal
- [LeetCode]--405. Convert a Number to Hexadecimal
- [leetcode]405. Convert a Number to Hexadecimal
- LeetCode 405. Convert a Number to Hexadecimal
- leetcode 405. Convert a Number to Hexadecimal
- leetcode 405. Convert a Number to Hexadecimal
- LeetCode 405. Convert a Number to Hexadecimal
- LeetCode 405. Convert a Number to Hexadecimal
- 【LeetCode】 405. Convert a Number to Hexadecimal
- Date和LocalDate互转
- ABAP OOALV 动态设置单元格可否编辑
- Gossip 数据传输协议
- 学习日记1
- 2.python环境准备
- LeetCode 405 Convert a Number to Hexadecimal
- hdu2570 迷瘴
- 为一个DOM元素添加事件有几种方式,分别是什么?
- HDU 1242:Rescue(BFS+优先队列)
- Apache Storm 的安装、配置及入门基础(三):一个简单的 topology
- 设计模式(17)--中介者模式
- 异常处理
- 【SSO】单点登录系统实现
- Python-ElasticSearch的使用