@你在街頭流離,痛苦不堪
藍橋杯
10進制轉16進制的問題
問題描述
十六進制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符号,分别表示十進制數的0至15。十六進制的計數方法是滿16進1,是以十進制數16在十六進制中是10,而十進制的17在十六進制中是11,以此類推,十進制的30在十六進制中是1E。
給出一個非負整數,将它表示成十六進制的形式。
輸入格式
輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647
輸出格式
輸出這個整數的16進制表示
樣例輸入
30
樣例輸出
1E
核心代碼
利用該代碼快速解題
String nums= Integer.toHexString((int) (num));
其他類型的轉化代碼:
java中進行二進制,八進制,十六進制,十進制間進行互相轉換。十進制轉成十六進制:integer.tohexstring(int i)。
十進制轉成八進制。integer.tooctalstring(int i)。
十進制轉成二進制。integer.tobinarystring(int i)。
十六進制轉成十進制。integer.valueof(“ffff”,16).tostring()。
八進制轉成十進制。integer.valueof(“876”,8).tostring()。
二進制轉十進制。integer.valueof(“0101”,2).tostring()。
整體代碼
import java.util.Scanner;
public class transform {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long num=in.nextLong();
String nums= Integer.toHexString((int) (num));
char[] num1=nums.toCharArray();
for (int i = 0; i < num1.length; i++) {
if ((int)num1[i] >= 97 && (int)num1[i] <= 122)
num1[i] -= 32;
}
for (int i = 0; i < num1.length; i++) {
System.out.print(num1[i]);
}
}
}
運算結果

練習系統跑分
注意:
注意
輸出的結果字母是大寫
是以 !
要把小寫轉化為大寫
代碼如下:
for (int i = 0; i < num1.length; i++) {
if ((int)num1[i] >= 97 && (int)num1[i] <= 122)
num1[i] -= 32;
}
for (int i = 0; i < num1.length; i++) {
System.out.print(num1[i]);
}
多多關照
本人第一次寫部落格,可能有些地方寫得不是夠好,請大家多多見諒!如果大佬們有什麼建議,或者是有更好的代碼,可以在評論區留言哦,大家互相學習,一起進步!謝謝大家!