如何将数字转换为二进制和十六进制(没有内置函数)?

时间:2011-06-21 13:30:11

标签: java

由于这是作业,我不能使用内置功能。我必须在Java中使用算法。

这是我到目前为止所做的,但这是错误的。

import java.util.Scanner;

public class ChangingFigures {
    public static void main (String[] args){
        Scanner scanner = new Scanner (System.in);
        System.out.print("Enter an integer between 0 and 127:");

        int num = scanner.nextInt ();

        String hex = Integer.toHexString(num);
        String bin = Integer.toBinaryString(num); 
        // ...
    }
}

2 个答案:

答案 0 :(得分:7)

算法很简单:

make an empty string
do:
    prepend "n" modulo "base" to that string
    divide "n" by "base"
until (n == 0)

如果“base”大于10,你需要做一些工作将“数字”转换成代表10 +的字母

答案 1 :(得分:-1)

到HEX:

String HEXES = "0123456789ABCDEF";
System.out.println(HEXES.charAt((num & 0xF0) >> 4) + "" + HEXES.charAt((num & 0x0F)));

To binary