进制转换:(java自带函数)
2. System.out.println(Integer.toBinaryString(arg0));//十进制转换为二进制
3. System.out.println(Integer.toOctalString(arg0));//十进制转换为八进制
4. System.out.println(Integer.toHexString(arg0));//十进制转换为十六进制
5. System.out.println(Integer.valueOf("FFFF",16).toString());//十六进制转换为十进制
6. System.out.println(Integer.valueOf("5",8).toString());//八进制转换为十进制
7. System.out.println(Integer.valueOf("0101",2).toString());//二进制转换为十进制
十进制转二进制:除二取余
十进制转八进制:除八取余
package 十进制转八进制;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
int cnt=0;
int a[]=new int[1000];
// System.out.println(Integer.toOctalString(n));//十进制转换为八进制
if(n==0){
System.out.println(0);
return;
}
while(n!=0){
a[cnt]=n%8;
cnt++;
n/=8;
}
for(int i=cnt-1;i>=0;i--){
System.out.print(a[i]);
}
}
}
十进制转十六进制:除十六取余(判断大于9的情况)
package 十进制转十六进制;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
char ch[]=new char[1000];
int cnt=0;
if(n==0) {
ch[0]='0';
System.out.println(ch[0]);
return;
}
while(n!=0){
int t=n%16;
char a=' ';
if(t>9){
if(t==10) a='A';
else if(t==11) a='B';
else if(t==12) a='C';
else if(t==13) a='D';
else if(t==14) a='E';
else if(t==15) a='F';
}else
a=(char) (t+'0');
ch[cnt]=a;
cnt++;
n/=16;
}
for(int i=cnt-1;i>=0;i--){
System.out.print(ch[i]);
}
}
}
十六进制转二进制(字符串)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int n;
String str;
StringBuilder str1;
InputStreamReader is = new InputStreamReader(System.in); //new构造InputStreamReader对象
BufferedReader br = new BufferedReader(is); //拿构造的方法传到BufferedReader中
n=Integer.parseInt(br.readLine());
while(n!=0){
str=br.readLine();
char ch[]=str.toCharArray();
String s2="";
for(int i=0;i<ch.length;i++){
switch(ch[i]){
case '0':s2+="0000";break;
case '1':s2+="0001";break;
case '2':s2+="0010";break;
case '3':s2+="0011";break;
case '4':s2+="0100";break;
case '5':s2+="0101";break;
case '6':s2+="0110";break;
case '7':s2+="0111";break;
case '8':s2+="1000";break;
case '9':s2+="1001";break;
case 'A':s2+="1010";break;
case 'B':s2+="1011";break;
case 'C':s2+="1100";break;
case 'D':s2+="1101";break;
case 'E':s2+="1110";break;
case 'F':s2+="1111";break;
default:break;
}
}
System.out.println(s2);
}
}
}
十六进制转八进制(先转二进制,二进制三位一组成八进制)
package 十六进制转八进制;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int n;
String str;
StringBuilder str1;
InputStreamReader is = new InputStreamReader(System.in); //new构造InputStreamReader对象
BufferedReader br = new BufferedReader(is); //拿构造的方法传到BufferedReader中
n=Integer.parseInt(br.readLine());
while(n!=0){
str=br.readLine();
char ch[]=str.toCharArray();
String s2="";
for(int i=0;i<ch.length;i++){
switch(ch[i]){
case '0':s2+="0000";break;
case '1':s2+="0001";break;
case '2':s2+="0010";break;
case '3':s2+="0011";break;
case '4':s2+="0100";break;
case '5':s2+="0101";break;
case '6':s2+="0110";break;
case '7':s2+="0111";break;
case '8':s2+="1000";break;
case '9':s2+="1001";break;
case 'A':s2+="1010";break;
case 'B':s2+="1011";break;
case 'C':s2+="1100";break;
case 'D':s2+="1101";break;
case 'E':s2+="1110";break;
case 'F':s2+="1111";break;
default:break;
}
}
// System.out.println(s2);
if(s2.length()%3==1){
s2="00"+s2;
}
if(s2.length()%3==2){
s2="0"+s2;
}
char arr2[]=s2.toCharArray();
for(int i=0;i<arr2.length;i+=3){
int flag=0;
int num=(arr2[i+2]-'0')+(arr2[i+1]-'0')*2+4*(arr2[i]-'0');
if(num!=0) flag=1;
if(flag==1) System.out.print(num);
}
System.out.println();
n--;
}
}
}
十六进制转十进制(pow函数)
package 十六进制转十进制;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String str=in.next();
char ch[]=str.toCharArray();
int k=0;
long num = 0;
for(int i=ch.length-1;i>=0;i--){
if(ch[i]>='0'&&ch[i]<='9'){
num+=(ch[i]-'0')*Math.pow(16,k);
}
else{
int b=ch[i]-'A'+10;
num+=(b)*Math.pow(16,k);
}
k++;
}
System.out.println(num);
}
}
八进制转十六进制(八进制转二进制,二进制转十六进制)
八进制转十进制(pow函数,底数为8)
八进制转二进制(字符串)
二进制转十进制(pow函数,底数为2)
二进制转八进制(三位一组)
二进制转十六进制(四位一组)