LeetCode——405.数字转换为十六进制数

网友投稿 832 2022-09-09

LeetCode——405.数字转换为十六进制数

题解

表面是10进制转换为16进制,实际上可以直接使用计算机存储的2进制形式转换为16进制2进制 → 16进制,就是4位合并。对于负数,仍然是4位合并。但是负数补码存储。进行算数右移操作时,左补1,所以对于负数,算数右移操作永远都不会是0,需要控制位数。32位2进制变成16进制,是8位.

AC-Code

class Solution {public: string toHex(int num) { if (num == 0) return "0"; string hex = "0123456789abcdef"; string ans = ""; while(num && ans.size() < 8) { ans = hex[num & 0xf] + ans; num >>= 4; } return ans; }};

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:剑指Offer——JZ34.第一个只出现一次的字符【bitset】
下一篇:Python 过滤字符串的技巧,map与itertools.imap(python中range()函数的用法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~