进制转换-java

2-蓝桥杯


BASIC-11-十六进制转十进制


问题描述

从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入

FFFF

样例输出

65535

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		long ans = 0l;
		for(int i = 0; i < str.length(); i++) {
			if(str.charAt(i) >= '0' && str.charAt(i) <= '9')
			ans = ans * 16 + str.charAt(i) - '0';
			else ans = ans * 16 + str.charAt(i) - 'A' + 10;
		}
		System.out.println(ans);
	}
}

记录几个函数方法:

  1. 十进制整数转其他进制
    System.out.println(n + "的二进制是:" + Integer.toBinaryString(n));
    System.out.println(n + "的八进制是:" + Integer.toOctalString(n));
    System.out.println(n + "的十六进制是:" + Integer.toHexString(n));
    System.out.println(n + "的三进制是:" + Integer.toString(n, 3));
    
    //Long 同理
    System.out.println(n + "的二进制是:" + Long.toBinaryString(n));
    	System.out.println(n + "的八进制是:" + Long.toOctalString(n));
    	System.out.println(n + "的十六进制是:" + Long.toHexString(n));
    	System.out.println(n + "的三进制是:" + Long.toString(n, 3));
    
  2. 某字符串转十进制整数
    Integer.parseInt(字符串,字符串的进制);
    Long.parseLong(字符串,字符串的进制)

单纯的记录下 Java 中排序的函数

    Arrays.sort(); 

BASIC-10-十进制转十六进制


import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Long k = sc.nextLong();
		String ansBinary = Long.toBinaryString(k);
		if(ansBinary.length() % 4 == 0)	System.out.println(toHex(ansBinary));
		else {
			String temp = "";
			for(int i = 1; i <= 4 - ansBinary.length() % 4; i++)temp += "0";
			ansBinary = temp + ansBinary;
			System.out.println(toHex(ansBinary));
		}
		
	}
	private static String toHex(String s) {
		StringBuffer sb = new StringBuffer();
		for(int i = 0; i < s.length(); i += 4) {
			String sub = s.substring(i, i+4);
			switch(sub) {
				case "0000": sb.append("0");break;
				case "0001": sb.append("1");break;
				case "0010": sb.append("2");break;
				case "0011": sb.append("3");break;
				case "0100": sb.append("4");break;
				case "0101": sb.append("5");break;
				case "0110": sb.append("6");break;
				case "0111": sb.append("7");break;
				case "1000": sb.append("8");break;
				case "1001": sb.append("9");break;
				case "1010": sb.append("A");break;
				case "1011": sb.append("B");break;
				case "1100": sb.append("C");break;
				case "1101": sb.append("D");break;
				case "1110": sb.append("E");break;
				case "1111": sb.append("F");break;
			}
		}
		return sb.toString();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值