public class StringTest{ public static void main(String[] args){ String s = Integer.toString(100,16);//把十进制的100转换成16进制的字符型 int a = Integer.parseInt(s);//把16进制的字符型转换成整型 System.out.println(a); } }
int i = 10; String str = Integer.toHexString(i);
import java.util.Set; import java.util.TreeSet;/** * 所谓的转成某种进制数,实际上是转成某种进制数来显示吧,实际上是转成了十六进制的字符串表示形式, * 因为底层数据结构都是2进制的。 * * * @author jinxfei * */ public class Test {
public static void main(String[] args) throws Exception{ int decNumber=12345678; String hexStr=Integer.toHexString(decNumber); System.out.println(decNumber+"=="+hexStr); }
}输出如下: 12345678==bc614e
public class IntegerDemo{ public static void main(String[] arg){ Integer toHex = new Integer(100);//比如你要将100转成16进制 System.out.print(Integer.toHexString(toHex.intValue())); } }如果你要转的数很大可以用Long这个类用法和Intger一样
int i = 123; String str = Integer.toHexString(i);
public class Test{ public static void main(String[] args){ String s = Integer.toString(123456,16);//把十进制的123456转换成16进制的字符型 int a = Integer.parseInt(s);//把16进制的字符型转换成整型 System.out.println(a); } }
String s = Integer.toString(100,16);//把十进制的100转换成16进制的字符型 int a = Integer.parseInt(s);//把16进制的字符型转换成整型 System.out.println(a);
import java.util.*;public class Test {
public static void main(String[] args) { System.out.print("输入n:"); Scanner sc = new Scanner(System.in); try{ int n = sc.nextInt(); String hex = Integer.toHexString(n); System.out.println("\n"+hex); }catch(InputMismatchException e){ System.out.println("\n输入错误"); }
} }
String hexStr = String.format("%x", yourvalue);
package buffer;import java.nio.ByteBuffer; import java.nio.ByteOrder;public class Test { public static void main(String[] args) { int len = 8; ByteBuffer buf = ByteBuffer.allocateDirect(len); buf.order(ByteOrder.BIG_ENDIAN); buf.putLong(1000000000l); buf.rewind(); byte[] dst = new byte[len]; buf.get(dst); for (int i = 0; i < dst.length; i++) { int ch = dst[i] < 0 ? dst[i] + 256 : dst[i]; int h = ch / 16; int l = ch % 16; char hc = h > 9 ? (char) ('7' + h) : (char) ('0' + h); char lc = l > 9 ? (char) ('7' + l) : (char) ('0' + l); System.out.print(hc + "" + lc); } } }
高精进制转换的方法跟普通的是一样的啊 通过不断的mod16,存下来,在mod,直到到头 1111 mod 16-->余7商69,存下来,这是最后一位 69 mod 16-->余5商4,存下5,这是第二位 4小于16,存下,这是第三位 然后正序输出就行了 不过高精的话要用高精除单精,麻烦些而已
public class test { public static void main(String [] args) { int para=31; //String str=String.format("%x", para); //String str=Integer.toHexString(para); String str=Integer.toString(para, 16); System.out.println(str); //int i=Integer.parseInt("0x"+str); int i=Integer.parseInt(str, 16); System.out.println(i); } }
我以前写的,还没有整理 public class ParseClass { /* * EA154800-->004815EA-->十进制 def-->00000efd-->3837 * 00000def-->efd00000-->4023386112 */ public String processCardNumber(String str) { int len = str.length(); String str0;// 补齐合的字符串 // 补零处理 if (len < 8) { int a = 8 - len; StringBuffer sb = new StringBuffer(); for (int i = 0; i < a; i++) { sb.append("0"); } str0 = sb.append(str).toString(); } else { str0 = str; } System.out.println("原十六进制:" + str); System.out.println("补零后:" + str0); // 赋值数组 int a = 0; String str1[] = new String[str0.length()/2]; System.out.println("补零后的长度为:" + str0.length()/2); for (int arr = 0; arr < str0.length() / 2; arr++) { str1[arr] = str0.substring(a, a + 2); a += 2; } // 排列最后顺序 StringBuffer sb1 = new StringBuffer(); for(int c=str1.length-1;c>=0;c--){ sb1.append(str1[c]); } String finalS = sb1.toString(); return finalS; // StringBuffer sb1 = new StringBuffer(); // String finalS = sb1.append(str1[3]).append(str1[2]).append(str1[1]) // .append(str1[0]).toString(); // return finalS; } // public boolean parse(String s){ // String str = processCardNumber(s); // return false; // } public long hexToDec(String s) { String str = processCardNumber(s); long sum = 0; System.out.println("将要转换的:" + str); char[] chars = str.toCharArray(); for (int i = 0; i < chars.length; i++) { sum += toDec(chars[i], (chars.length - i - 1)); } return sum; } private static long toDec(char c, int i) { final double N = 16.0; int n = getNum(c); long r = (long) (n * Math.pow(N, (double) i)); return r; } private static int getNum(char c) { int i = 0; switch (c) { case '0' : i = 0; break; case '1' : i = 1; break; case '2' : i = 2; break; case '3' : i = 3; break; case '4' : i = 4; break; case '5' : i = 5; break; case '6' : i = 6; break; case '7' : i = 7; break; case '8' : i = 8; break; case '9' : i = 9; break; case 'A' : i = 10; break; case 'B' : i = 11; break; case 'C' : i = 12; break; case 'D' : i = 13; break; case 'E' : i = 14; break; case 'F' : i = 15; break; case 'a' : i = 10; break; case 'b' : i = 11; break; case 'c' : i = 12; break; case 'd' : i = 13; break; case 'e' : i = 14; break; case 'f' : i = 15; break; } return i; } public static void main(String[] args) { ParseClass p = new ParseClass(); String str = "1234567"; System.out.println(p.hexToDec(str)); } }
public static void main(String[] args){
String s = Integer.toString(100,16);//把十进制的100转换成16进制的字符型
int a = Integer.parseInt(s);//把16进制的字符型转换成整型
System.out.println(a);
}
}
String str = Integer.toHexString(i);
import java.util.Set;
import java.util.TreeSet;/**
* 所谓的转成某种进制数,实际上是转成某种进制数来显示吧,实际上是转成了十六进制的字符串表示形式,
* 因为底层数据结构都是2进制的。
*
*
* @author jinxfei
*
*/
public class Test {
public static void main(String[] args) throws Exception{
int decNumber=12345678;
String hexStr=Integer.toHexString(decNumber);
System.out.println(decNumber+"=="+hexStr);
}
}输出如下:
12345678==bc614e
public static void main(String[] arg){
Integer toHex = new Integer(100);//比如你要将100转成16进制
System.out.print(Integer.toHexString(toHex.intValue()));
}
}如果你要转的数很大可以用Long这个类用法和Intger一样
int i = 123;
String str = Integer.toHexString(i);
public static void main(String[] args){
String s = Integer.toString(123456,16);//把十进制的123456转换成16进制的字符型
int a = Integer.parseInt(s);//把16进制的字符型转换成整型
System.out.println(a);
}
}
System.out.println(Integer.toString(1000000000, 16));
学习啦
String s = Integer.toString(100,16);//把十进制的100转换成16进制的字符型
int a = Integer.parseInt(s);//把16进制的字符型转换成整型
System.out.println(a);
public static void main(String[] args) {
System.out.print("输入n:");
Scanner sc = new Scanner(System.in);
try{
int n = sc.nextInt();
String hex = Integer.toHexString(n);
System.out.println("\n"+hex);
}catch(InputMismatchException e){
System.out.println("\n输入错误");
}
}
}
import java.nio.ByteOrder;public class Test {
public static void main(String[] args) {
int len = 8;
ByteBuffer buf = ByteBuffer.allocateDirect(len);
buf.order(ByteOrder.BIG_ENDIAN);
buf.putLong(1000000000l);
buf.rewind();
byte[] dst = new byte[len];
buf.get(dst);
for (int i = 0; i < dst.length; i++) {
int ch = dst[i] < 0 ? dst[i] + 256 : dst[i];
int h = ch / 16;
int l = ch % 16;
char hc = h > 9 ? (char) ('7' + h) : (char) ('0' + h);
char lc = l > 9 ? (char) ('7' + l) : (char) ('0' + l);
System.out.print(hc + "" + lc);
}
}
}
通过不断的mod16,存下来,在mod,直到到头
1111 mod 16-->余7商69,存下来,这是最后一位
69 mod 16-->余5商4,存下5,这是第二位
4小于16,存下,这是第三位
然后正序输出就行了
不过高精的话要用高精除单精,麻烦些而已
{
public static void main(String [] args)
{
int para=31;
//String str=String.format("%x", para);
//String str=Integer.toHexString(para);
String str=Integer.toString(para, 16);
System.out.println(str);
//int i=Integer.parseInt("0x"+str);
int i=Integer.parseInt(str, 16);
System.out.println(i);
}
}
public class ParseClass {
/*
* EA154800-->004815EA-->十进制 def-->00000efd-->3837
* 00000def-->efd00000-->4023386112
*/
public String processCardNumber(String str) {
int len = str.length();
String str0;// 补齐合的字符串
// 补零处理
if (len < 8) {
int a = 8 - len;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < a; i++) {
sb.append("0");
}
str0 = sb.append(str).toString();
} else {
str0 = str;
}
System.out.println("原十六进制:" + str);
System.out.println("补零后:" + str0);
// 赋值数组
int a = 0;
String str1[] = new String[str0.length()/2];
System.out.println("补零后的长度为:" + str0.length()/2);
for (int arr = 0; arr < str0.length() / 2; arr++) {
str1[arr] = str0.substring(a, a + 2);
a += 2;
}
// 排列最后顺序
StringBuffer sb1 = new StringBuffer();
for(int c=str1.length-1;c>=0;c--){
sb1.append(str1[c]);
}
String finalS = sb1.toString();
return finalS;
// StringBuffer sb1 = new StringBuffer();
// String finalS = sb1.append(str1[3]).append(str1[2]).append(str1[1])
// .append(str1[0]).toString();
// return finalS;
} // public boolean parse(String s){
// String str = processCardNumber(s);
// return false;
// }
public long hexToDec(String s) {
String str = processCardNumber(s);
long sum = 0;
System.out.println("将要转换的:" + str);
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
sum += toDec(chars[i], (chars.length - i - 1));
}
return sum;
} private static long toDec(char c, int i) { final double N = 16.0; int n = getNum(c); long r = (long) (n * Math.pow(N, (double) i)); return r; } private static int getNum(char c) {
int i = 0; switch (c) {
case '0' : i = 0;
break;
case '1' : i = 1;
break;
case '2' : i = 2;
break;
case '3' : i = 3;
break;
case '4' : i = 4;
break;
case '5' : i = 5;
break;
case '6' : i = 6;
break;
case '7' : i = 7;
break;
case '8' : i = 8;
break;
case '9' : i = 9;
break;
case 'A' : i = 10;
break;
case 'B' : i = 11;
break;
case 'C' : i = 12;
break;
case 'D' : i = 13;
break;
case 'E' : i = 14;
break;
case 'F' : i = 15;
break;
case 'a' : i = 10;
break;
case 'b' : i = 11;
break;
case 'c' : i = 12;
break;
case 'd' : i = 13;
break;
case 'e' : i = 14;
break;
case 'f' : i = 15;
break;
}
return i;
}
public static void main(String[] args) {
ParseClass p = new ParseClass();
String str = "1234567";
System.out.println(p.hexToDec(str));
}
}
这种问题也80分,真有钱