牢记这些呀,特别常用!
1.十进制转成二进制 未补0
String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=5 ,s = "101"
十进制转成二进制 补0
//输出结果:00000100 String bin = Integer.toBinaryString(4); DecimalFormat df = new DecimalFormat("00000000"); String format = df.format(Integer.valueOf(bin)); System.out.println(format);
2.二进制转成十进制
方法1:使用Integer.parseInt()实现二进制转换为十进制
import java.util.Scanner; class BinaryToDecimal { public static void main(String args[]){ Scanner input = new Scanner( System.in ); System.out.print("Enter a binary number: "); String binaryString =input.nextLine(); System.out.println("Output: "+Integer.parseInt(binaryString,2)); } }
方法2:使用自定义逻辑实现二进制转换十进制
public class Details { public static void main(String args[]) { Details obj = new Details(); System.out.println("110 --> " + obj.BinaryToDecimal(110)); System.out.println("1101 --> " + obj.BinaryToDecimal(1101)); } public int BinaryToDecimal(int binaryNumber) { int decimal = 0; int p = 0; while (true) { if (binaryNumber == 0) { break; } else { int temp = binaryNumber % 10; decimal += temp * Math.pow(2, p); binaryNumber = binaryNumber / 10; p++; } } return decimal; } }
3.十进制转成八进制
//十进制转八进制 String octalString = Integer.toOctalString(9); System.out.println("octalString====="+octalString);
4.八进制转成十进制
public class DecimalFormatTest { public static void main(String[] args) { int octal = 116; int decimal = convertOctalToDecimal(octal); System.out.printf("%d 八进制 = %d十进制", octal, decimal); } public static int convertOctalToDecimal(int octal) { int decimalNumber = 0, i = 0; while(octal != 0) { decimalNumber += (octal % 10) * Math.pow(8, i); ++i; octal/=10; } return decimalNumber; } }
5.十进制转成十六进制
//补充 十进制转16进制 输出结果:12 String hexString = Integer.toHexString(18); System.out.println("hexString====="+hexString);
6.十六进制转成十进制
import java.util.HashMap; import java.util.Map; public class DecimalTest { public static void main(String[] args) { //十六进制转10进制 String hexString = Integer.toHexString(18); int covert = covert(hexString); System.out.println("covert======="+covert); } public static int covert(String content){ int number=0; String [] HighLetter = {"A","B","C","D","E","F"}; Map<String,Integer> map = new HashMap<>(); for(int i = 0;i <= 9;i++){ map.put(i+"",i); } for(int j= 10;j<HighLetter.length+10;j++){ map.put(HighLetter[j-10],j); } String[]str = new String[content.length()]; for(int i = 0; i < str.length; i++){ str[i] = content.substring(i,i+1); } for(int i = 0; i < str.length; i++){ number += map.get(str[i])*Math.pow(16,str.length-1-i); } return number; } }