Denary数字到十六进制

作为一项功课,我被要求编写一个程序,将一个二元数转换为十六进制。我创作的作品有点不同,但作为输出它给了我反转的数字,我不知道如何解决它(这是我的第一个程序)。Denary数字到十六进制

public static void main(String[] args) { 

System.out.println("Give a denary number: ");

Scanner sc = new Scanner(System.in);

int dec1 = sc.nextInt();

String dec = Integer.toString(dec1);

int zmienna;

for(int i = 0; i < dec.length(); i++) {

zmienna = dec1 % 16;

dec1 = dec1/16;

if(zmienna == 10) {

System.out.print("A");

}

else if (zmienna == 11) {

System.out.print("B");

}

else if (zmienna == 12) {

System.out.print("C");

}

else if (zmienna == 13) {

System.out.print("D");

}

else if (zmienna == 14) {

System.out.print("E");

}

else if (zmienna == 15) {

System.out.print("F");

}

else if (zmienna == 0 & i == dec.length() - 1) {

System.out.print("");

}

else {

System.out.print(zmienna);

}

}

}

回答:

我只是改变你的程序中的一点我只是试图解决你的问题,它的工作原理。我只是添加了一个StringBuilder并附加字符,并在最后反转它。
代码

import java.util.Scanner; 

public class A {

public static void main(String[] args) {

System.out.println("Give a denary number: ");

Scanner sc = new Scanner(System.in);

int dec1 = sc.nextInt();

StringBuilder sb =new StringBuilder();

String dec = Integer.toString(dec1);

int zmienna;

for(int i = 0; i < dec.length(); i++) {

zmienna = dec1 % 16;

dec1 = dec1/16;

if(zmienna == 10) {

//System.out.print("A");

sb.append("A");

}

else if (zmienna == 11) {

//System.out.print("B");

sb.append("B");

}

else if (zmienna == 12) {

//System.out.print("C");

sb.append("C");

}

else if (zmienna == 13) {

//System.out.print("D");

sb.append("D");

}

else if (zmienna == 14) {

//System.out.print("E");

sb.append("E");

}

else if (zmienna == 15) {

// System.out.print("F");

sb.append("F");

}

else if (zmienna == 0 & i == dec.length() - 1) {

System.out.print("");

}

else {

//System.out.print(zmienna);

sb.append(zmienna);

}

}

System.out.println(sb.reverse());

}

}

以上是 Denary数字到十六进制 的全部内容, 来源链接: utcz.com/qa/257273.html

回到顶部