『壹』 java 將十進制轉換成十六進制字元串
importjava.util.Scanner;
publicclassTentoSixteen{
privatestaticStringBuildersum=newStringBuilder();
privatestaticintrulst;//定義一個結果,記錄數與15的與運算結果,求得原數二進制最後四位的值
privatestaticintcount;//若數的二進制不止四位,定義一個數來記錄除去後四位的新數,運用遞歸作用與rulst相同
privatestaticvoidTtoSMethod1(inti){//JDK自帶的轉化方法
Stringexchanged=Integer.toHexString(i);
System.out.println(exchanged);
}
privatestaticvoidSop(){//將得到的字元串反轉
System.out.println(sum.reverse().toString());
}
privatestaticvoidsubim(intrulst){//判斷是否超出10,根據十六進制的規則超出10部分由字母ABCDEF代替
if(rulst<10){
sum.append(rulst);
}else{
sum.append((char)('A'+(rulst-10)));//將int強制轉換為char
}
}
privatestaticvoidTtoSMethod2(inti){
rulst=i&15;
if(i<(1<<4)&&i>=0){//判斷數有多少位,大於0小於16,則轉換後打直接印
subim(rulst);
}else{//不止四位的數則用遞歸來多次運算
count=i>>4;//除去最後四位
subim(rulst);
TtoSMethod2(count);//遞歸直到count為0止
}
}
publicstaticvoidmain(String[]args){
@SuppressWarnings("resource")
Scannerscan=newScanner(System.in);
System.out.println("請出入一個十進制數:");
intnum=scan.nextInt();
TtoSMethod1(num);//自帶方法
TtoSMethod2(num);//自定義方法,可將任意的十進制轉化為十六進制
Sop();//輸出
}
}