前提・実現したいこと
Java初学者です.入力した10進数を16進数に変換し表示するプログラムを実現したいです.
発生している問題
入力した10進数を16で割り,余りをStringに変えて文字列に格納してその配列を出力しています. 配列の10~15のところをif文で拾ってA~Fに書き換える処理をしているのですが,出力時に反映されていません. ex)30を入力すると114と出力される.(1Eと出力されて欲しい)
該当のソースコード
Java
1import java.util.Scanner; 2 3public class p20 { 4 public static void main(String[] args) { 5 int i = 0; 6 int j = 0; 7 String[] num = new String[32]; 8 Scanner scanner = new Scanner(System.in); 9 10 System.out.print("Input a decimal number: "); 11 int deci = scanner.nextInt(); 12 13 14 while(deci>15) { 15 num[i++] = String.valueOf(deci%16); 16 j++; 17 deci /= 16; 18 } 19 num[i] = String.valueOf(deci); 20 21 while(j>=0) { 22 if(num[j]=="10") 23 num[j] = "A"; 24 else if(num[j]=="11") 25 num[j] = "B"; 26 else if(num[j]=="12") 27 num[j] = "C"; 28 else if(num[j]=="13") 29 num[j] = "D"; 30 else if(num[j]=="14") 31 num[j] = "E"; 32 else if(num[j]=="15") 33 num[j] = "F"; 34 j--; 35 } 36 37 System.out.print("Hexadecimal number is: "); 38 while(i>=0) 39 System.out.print(num[i--]); 40 System.out.print("\n"); 41 42 } 43} 44
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/03 04:24