[JAVA] [문자열] 10 진법 16 진법 으로 변환

필기 하 다.
1. 숫자 int 를 문자 형식 char 로 변환 합 니 다.
    	int k = 5;
    	char n = (char)('0' + k);//         
    	char m = (char)('k');
    	char w = 'k';
    	System.out.println(n);
    	System.out.println(m);
    	System.out.println(w);

실행 결과:
5
k
k

2. StringBuffer 의 append (a, b, c) 방법
(1)sb.append(char[] str, int offset, int len)
색인 offset 에서 시작 하 는 len 길이 의 문 자 를 sb 에 추가 합 니 다.
(2) sb.append(String s, int start, int end)
색인 start 부터 색인 end (end 포함 하지 않 음) 까지 문자열 s 를 sb 에 추가 합 니 다.
예 를 들 면:
public class StringBuffer_append   {
     
	public static void main(String[] args) {
     
		StringBuffer sb1 = new StringBuffer("Hard ");
		StringBuffer sb2 = new StringBuffer("Hard "); 
		
		char[] ch = new char[]{
     'W','a','x','w','o','r','k','s'};
		sb1.append(ch,3,4);
		System.out.println("            ,   :" + sb1);
		
		String s = "Waxworks"; 
		sb2.append(s,3,4);
		System.out.println("          ,   :" + sb2);
		
	}

}

실행 결 과 는:
            ,   :Hard work
          ,   :Hard w

사고의 방향
1. 문자 배열 을 사용 하여 10 진 숫자 를 저장 합 니 다. 2. 개 비트 부터 / 16 및% 16 을 이용 하여 현재 number 와 나머지 를 업데이트 하고 16 진의 10 - 15 와 A - F 의 전환 을 주의 하 십시오.3. 반전 문자열 이 필요 하기 때문에 문자열 버퍼 저장 소 를 만 듭 니 다.4. 16 진법 의 고정 형식 은 시작 에 0 X 를 더 해 야 한 다 는 것 을 주의 하 세 요.
코드
package leetcode;

import java.util.Scanner;

public class     _10 16 {
     
	public static void main(String[] args) {
     
		//     16  
		
		Scanner sc = new Scanner(System.in);
		
		while(sc.hasNext()) {
     
			int number = sc.nextInt();//       
			char[] ch= new char[(number + "").length()];//   int        
			int nindex = 0;//          
			
			while(true) {
     
				int m = number/16;//    
				int k = number%16;//  
				if(k == 10) {
     
					ch[nindex] = 'A';
				}
				if(k == 11) {
     
					ch[nindex] = 'B';
				}
				if(k == 12) {
     
					ch[nindex] = 'C';
				}
				if(k == 13) {
     
					ch[nindex] = 'D';
				}
				if(k == 14) {
     
					ch[nindex] = 'E';
				}
				if(k == 15) {
     
					ch[nindex] = 'F';
				}
				if((k>=0)&&(k<10)) {
     //  k 0-9
					ch[nindex] = (char)('0'+k);//  :     char    char[]     ch
				}
				nindex++;//         (          ,       
				if(m == 0) break;//        0,     
				number = m;//  m   0,   number
			}
			StringBuffer sb = new StringBuffer();//        sb
			sb.append(ch, 0, nindex);// ch    0     index-1     sb
			//  sb.append(char[] str,int offset,int len)   sb.append(String str,int start,int end)   
			sb.reverse();//        
			
			String ans = "0x";//        :    0x
			ans = ans + sb.toString();
			System.out.println(ans);			
		}		
	}
}

입력: 100 360 16 32.실행 결 과 는:
100 360 16 32 
0x64
0x168
0x10
0x20

좋은 웹페이지 즐겨찾기