字符串与2进制互相转换,比较易于理解的一种方法
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String s1 = sc.nextLine();
String s2 = sc.nextLine();
String[] strs = s1.split("\\.");
StringBuilder sb = new StringBuilder();
for(int i = 0;i<strs.length;i++)
{
int n = Integer.parseInt(strs[i]);
String binary = Integer.toBinaryString(n);
int len = binary.length();
for(int j = 0;j<8-len;j++){
binary = '0'+binary;
}
sb.append(binary);
}
long res1 = Long.parseLong(sb.toString(),2);
System.out.println(res1);
String s = Long.toBinaryString(Long.parseLong(s2));
int len = s.length();
for(int i = 0;i<32-len;i++){
s = '0'+s;
}
StringBuilder sb2 = new StringBuilder();
for(int i = 0;i<32;i=i+8){
String sub = s.substring(i,i+8);
int n = Integer.parseInt(sub,2);
sb2.append(n+".");
}
String res2 = sb2.toString().substring(0,sb2.length()-1);
System.out.println(res2);
}
}
}
京公网安备 11010502036488号