[LeetCode] Convert a Number to Hexadecimal

아르당·4일 전

LeetCode

목록 보기
85/94
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

32비트 정수 num이 주어졌을 때, 해당 정수의 16진수 표현을 문자열로 반환해라. 음의 정수인 경수, 2의 보수 방식을 사용한다.

응답 문자열의 모든 문자는 소문자여야 하며, 0 자체를 제외하고는 앞에 0이 붙어서는 안 된다.

Example

#1
Input: num = 26
Output: "1a"

#2
Input: num = -1
Output: "ffffffff"

Constraints

  • -2^31 <= num <= 2^31 - 1

Solved

class Solution {
    public String toHex(int num) {
        if(num == 0) return "0";

        char[] hexChars = "0123456789abcdef".toCharArray();
        StringBuilder sb = new StringBuilder();

        while(num != 0){
            int rem = num & 15;
            sb.append(hexChars[rem]);
            num >>>= 4;
        }

        return sb.reverse().toString();
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글