当前位置:网站首页>LeetCode_位运算_简单_405.数字转换为十六进制数
LeetCode_位运算_简单_405.数字转换为十六进制数
2022-08-01 12:21:00 【小城老街】
1.题目
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用补码运算方法。
注意:
① 十六进制中所有字母 (a - f) 都必须是小写。
② 十六进制字符串中不能包含多余的前导零。如果要转化的数为 0,那么以单个字符 ‘0’ 来表示;对于其他情况,十六进制字符串中的第一个字符将不会是 0 字符。
③ 给定的数确保在 32 位有符号整数范围内。
④ 不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。
示例 1:
输入:
26
输出:
“1a”
示例 2:
输入:
-1
输出:
“ffffffff”
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/convert-a-number-to-hexadecimal
2.思路
(1)位运算
3.代码实现(Java)
//思路1————位运算
class Solution {
public String toHex(int num) {
if (num == 0) {
return "0";
}
StringBuilder builder = new StringBuilder();
// int 类型的二进制整数有 32 位,故只需遍历 8 组 4 个二进制位
for (int i = 7; i >= 0; i--) {
// 从高位开始转换
int value = (num >> (4 * i)) & 0xf;
if (builder.length() > 0 || value > 0) {
char digit;
if (value < 10) {
digit = (char) ('0' + value);
} else {
digit = (char)('a' + value - 10);
}
builder.append(digit);
}
}
return builder.toString();
}
}
边栏推荐
猜你喜欢
随机推荐
[Nodejs] fs module of node
Istio Meetup China:全栈服务网格 - Aeraki 助你在 Istio 服务网格中管理任何七层流量
Js手写函数之new的模拟实现
小程序插件如何帮助开发者受益?
MVVM响应式
Find objects with the same property value Cumulative number Summarize
SCHEMA解惑
2022 Go ecosystem rpc framework Benchmark
formatdatetime函数 mysql(date sub函数)
Software designer test center summary (interior designer personal summary)
阿里云官方 Redis 开发规范
通讯录(静态版)(C语言)(VS)
Grafana 9.0 released, Prometheus and Loki query builders, new navigation, heatmap panels and more!
Alibaba Cloud Official Redis Development Specification
SQL函数 SQRT
将同级数据处理成树形数据
一文带你彻底厘清 Isito 中的证书工作机制
Sparse representation - study notes
STM32 CAN过滤器配置详解
[Open class preview]: Research and application of super-resolution technology in the field of video quality enhancement








