㈠ 用java将十进制转换成十六进制
1、用Integer.toHexString方法即可将十进制装成十六进制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
㈡ 用Java 生成一个长度为40的、完全由16进制数组成的随机字符串的方法:
用java.util.UUID 可以实现这个。
下面是样例 :
ss[0]=====4cdbc040-657a-4847-b266-7e31d9e2c3d9,
ss[1]=====72297c88-4260-4c05-9b05-d28bfb11d10b,
ss[2]=====6d513b6a-69bd-4f79-b94c-d65fc841ea95,
ss[3]=====d897a7d3-87a3-4e38-9e0b-71013a6dbe4c,
㈢ JAVA 16进制数的问题
如果只是为了实现这个效果 java自带的类中已经有帮你实现好的方法 你直接调用就行了
Integer.toHexString(int i)将10进制转16进制
如果是为了自己实现来查看原理
需要知道计算机中的数字都是按2进制存储的
int类型的数字占32个bit位
具体实现代码
//这个代码是通用的 num就是你要转化的数字 base是参与位运算的数字 offset是一次运算//// //后右移位数,要实现你的需求 只需要在调用时 把base设置为15 offset设置为4就好了
public static String trans(int num,int base,int offset ){
if(num==0){
return "0";
}
char[] arr={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//定义对应表
char[] res=new char[32];//Int类型32位bit
int pose=res.length;//当前所在数组位置指针
while(num!=0){
int temp=num & base;//最低位与运算
res[--pose]=arr[temp];//保存转换后的低位
num=num >>> offset;//次低位移动到最低位
}
String st=new String(res);
return st.trim();
}