更新时间:2022-08-31 11:13:31 来源:极悦 浏览805次
Java进制转换的方法大家可要牢记哦。
String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=4 ,s = "100"
十进制转成二进制 补0
//输出结果:00000100
String bin = Integer.toBinaryString(4);
DecimalFormat df = new DecimalFormat("00000000");
String format = df.format(Integer.valueOf(bin));
System.out.println(format); //format=00000100
方法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;
}
}
//十进制转八进制
String octalString = Integer.toOctalString(9);
System.out.println("octalString====="+octalString);
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;
}
}
//补充 十进制转16进制 输出结果:12
String hexString = Integer.toHexString(18);
System.out.println("hexString====="+hexString);
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;
}
}
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习