반응형
Java 정수를 16 진 정수로 변환
정수에서 숫자를 다른 정수로 변환하려고합니다. 16 진수로 인쇄하면 원래 정수와 동일하게 보입니다.
예를 들면 :
20을 32로 변환 (0x20)
54를 84로 변환 (0x54)
public static int convert(int n) {
return Integer.valueOf(String.valueOf(n), 16);
}
public static void main(String[] args) {
System.out.println(convert(20)); // 32
System.out.println(convert(54)); // 84
}
즉, 원래 숫자를 16 진수로 취급 한 다음 10 진수로 변환합니다.
가장 쉬운 방법은 Integer.toHexString(int)
int를 hex 로 변환하는 또 다른 방법 입니다.
String hex = String.format("%X", int);
대문자 X
를 x
소문자로 변경할 수 있습니다 .
예:
String.format("%X", 31)
결과 1F
.
String.format("%X", 32)
결과 20
.
int orig = 20;
int res = Integer.parseInt(""+orig, 16);
다음과 같이 시도해 볼 수 있습니다 (종이에 수행하는 방식).
public static int solve(int x){
int y=0;
int i=0;
while (x>0){
y+=(x%10)*Math.pow(16,i);
x/=10;
i++;
}
return y;
}
public static void main(String args[]){
System.out.println(solve(20));
System.out.println(solve(54));
}
예를 들어 다음과 같이 계산합니다. 0 * 16 ^ 0 + 2 * 16 ^ 1 = 32 및 4 * 16 ^ 0 + 5 * 16 ^ 1 = 84
String input = "20";
int output = Integer.parseInt(input, 16); // 32
다음은 양의 정수 의 헥사 표현 만 인쇄하려는 경우 최적화됩니다 .
비트 조작, ASCII 문자의 utf-8 값 및 StringBuilder
끝에서 a 반전을 피하기위한 재귀 만 사용하므로 매우 빠릅니다 .
public static void hexa(int num) {
int m = 0;
if( (m = num >>> 4) != 0 ) {
hexa( m );
}
System.out.print((char)((m=num & 0x0F)+(m<10 ? 48 : 55)));
}
다음과 같이하십시오.
public static int specialNum(num){
return Integer.parseInt( Integer.toString(num) ,16)
}
특수 10 진수 정수를 16 진수로 변환해야합니다.
참조 URL : https://stackoverflow.com/questions/9321553/java-convert-integer-to-hex-integer
반응형
'programing' 카테고리의 다른 글
검색 버튼을 표시하거나 키보드에서 버튼을 입력하도록 edittext를 설정하는 방법은 무엇입니까? (0) | 2021.01.16 |
---|---|
'for'루프에서 1 씩 증가 할 때 포맷팅 뒤에 기술적 인 이유는 무엇입니까? (0) | 2021.01.16 |
모호성에 대한 경고를 제거하는 방법은 무엇입니까? (0) | 2021.01.15 |
iframe src 요청에 요청 헤더를 추가 할 수 있습니까? (0) | 2021.01.15 |
Java 8의 새로운 기본 인터페이스 모델은 어떻게 작동합니까 (다이아몬드, 다중 상속 및 우선 순위 포함)? (0) | 2021.01.15 |