㈠ 用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();
}