Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
十进制数到十六进制-Java_Java - Fatal编程技术网

十进制数到十六进制-Java

十进制数到十六进制-Java,java,Java,我现在是一名学生,我刚刚开始学习Java。所以我为任何严重的错误感到抱歉! 我需要将用户输入的值(0-255)转换为十六进制数。 规则是,我只能使用length()和charAt(idx)方法或Scanner的next?()方法或我在代码中使用的方法。我也不允许使用while、for或数组 你能帮我吗?我写的代码,我知道它不会这样工作,但我不知道该怎么做。 谢谢大家! import java.util.Scanner; public class Hex { public static v

我现在是一名学生,我刚刚开始学习Java。所以我为任何严重的错误感到抱歉! 我需要将用户输入的值(0-255)转换为十六进制数。 规则是,我只能使用length()和charAt(idx)方法或Scanner的next?()方法或我在代码中使用的方法。我也不允许使用while、for或数组

你能帮我吗?我写的代码,我知道它不会这样工作,但我不知道该怎么做。 谢谢大家!

import java.util.Scanner;
public class Hex {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Value?");
        int vl = input.nextInt();

        int r, n;

        String hex = "0123456789ABCDEF";

        r = vl % 16;
        n = r / 16;

        char ch1, ch2;

// Is there a way to use a sort of And-Or condition for two variables or do I need to use multiple ifs?

        if (r,n < 9) {
            r=ch1;
            n=ch2;
        }
        if (r,n > 9) {
            ch1 = hex.charAt(r);
            ch2 = hex.charAt(n);
        }

        int nr1, nr2;
        nr1 = ch2;
        nr2 = ch1;

        System.out.println("Hex = "+nr1 + "" + nr2);

    }
}
import java.util.Scanner;
公共类十六进制{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“值?”);
int vl=input.nextInt();
int r,n;
字符串hex=“0123456789ABCDEF”;
r=vl%16;
n=r/16;
char ch1,ch2;
//有没有办法对两个变量使用And或Or条件,或者我需要使用多个ifs?
if(r,n<9){
r=ch1;
n=ch2;
}
如果(r,n>9){
ch1=十六进制字符(r);
ch2=十六进制字符(n);
}
int nr1,nr2;
nr1=ch2;
nr2=ch1;
系统输出打印项次(“十六进制=”+nr1+“”+nr2);
}
}

您不需要所有这些语句,只需要计算
%16
/16

static void toHex(int vl) {
    String hex = "0123456789ABCDEF";
    int r = vl % 16;
    int n = vl / 16;
    char ch1 = hex.charAt(n);
    char ch2 = hex.charAt(r);
    System.out.print("Hex = " + ch1 + "" + ch2 + " ");
}

有关信息:

if (r<9 && n<9) {  AND
}

if (r<9 || n<9) {  OR
}

if(r你肯定需要使用复合布尔表达式,而不是像你的例子中那样使用
r,n>9
。请阅读:还有
和&&
或|
运算符。例如,
if(A==B&&B==0)
@FailingCoder请小心。您提到的运算符是短路版本。有关此主题的更多信息,请参阅