使用Java代码实现进制转换——十进制转十六进制、八进制、二进制

今天教大家使用代码如何完成十进制对二进制、八进制、十六进制的转换。
我们直接上代码↓↓↓

//十进制转换为二进制
public static void main(String[] args) {
    System.out.println("请输入一个数:");
    Scanner sc = new Scanner(System.in);
    int x = sc.nextInt();
    toBin1(x);
}
//功能实现函数
public static void toBin1(iny num){
    StringBuffer sb = new StringBuffer();
    while(num>0) {
        sb.append(num%2);
        num = num /2;
    }
    System.out.println2(sb.reverse());
}
//使用查表法进行转换函数
public static void toBin(iny num){
    char[] chs={'0','1'}
    char[] arr = new char[32];
    int pos = arr.length;
    while(num 1= 0){
        int temp = num & 1;
        arr[--pos] = chs[temp];
        num = num>>>1;
    }
    for(int x = pos;x<arr.length;x++){
        System.out.println(arr[x]);
    }
}

十进制转换十六进制

public static void main(String[] args) {
    System.out.println("请输入一个数:");
    Scanner sc = new Scanner(System.in);
    int x = sc.nextInt();
    toHex(x);
}
//第一种转换方式实现的函数
public static void toHex(iny num){
    StringBuffer sb = new StringBuffer();
    for(int x = 0;x<8;x++){
        int temp = num & 15;
        if(temp > 9) {
            sb.append((char)(temp-10+'A'));
        }else {
            sb.append(temp)
        }
        num = num >>>4;
    }
    System.out.println(sb.reverse());
}
//第二种(查表法)实现转换功能:
public static void toHex(iny num){
    char[] chs={'1','2','3'
        ,'4','5','6','7'
        ,'8','9','A','B'
        ,'C','D','E','F'}
    char[] arr = new char[8];
    int pos = arr.length;
    while(num != 0){
        int temp = num & 15;
        arr[--pos] = chs[temp];
        num = num>>>4;
    }
    System.out.println("pos="+pos);
    for(int x= pos;x<arr.length;x++){
        System.out.println(arr[x]+",");
    }
}

十进制转二进制、八进制、十六进制

//10-->2
public static void toBin(int num){
    trans(num,1,1);
}
//10-->8
public static void toBa(int num){
    trans(num,7,3);
}
//10-->16
public static void toBin(int num){
    trans(num,15,4);
}
//实现转换功能函数(查表法)
public static void trans(int num,int base,int offset){
    if(num == 0){
        System.out.println(0);
        return;
    }
    char[] chs = {'1','2','3'
        ,'4','5','6','7'
        ,'8','9','A','B'
        ,'C','D','E','F'}
    char[] arr = new char[32];
    int pos = arr.length;
    while(num != 0){
        int temp = num & base;
        arr[--pos] = chs[temp];
        num = num>>>offset;
    }
    for(int x= pos;x<arr.length;x++){
        System.out.println(arr[x]);
    }
}

Perfact ؏؏☝ᖗ乛◡乛ᖘ☝؏؏
所有的进制转换都实现啦,现在可以直接拿去使用啦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@是小白吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值