㈠ java如何把byte數組里的十六進制轉換成int類型,如下圖的數據,雜么轉換,跪求方法和代碼
示例
packagecom.sdvdxl.other;
publicclassTest{
publicstaticvoidmain(String[]args){
byte[]bytes=newbyte[]{0x00,0x53};
for(byteb:bytes){
System.out.println(Integer.valueOf(b));
}
}
}
結果:
0
83
PS : 使用的時候回會自動轉換成10進制的答
㈡ 跪求:java讀取二進制文件寫成十六進制字元串,並把字元串寫入txt。我的程序生成了,但卻是空的。求解~~~
你輸入流讀進來存在內存中了,但是沒往輸出流里寫啊
FileOutputStream fout = new FileOutputStream("c:\\b.txt");//將十六進制數存成文本
fout.close();
new了一個輸出流,然後就關了,加上fout.write(asciiData .getBytes()) 再關吧。
㈢ 可以把java中十進制數用代碼直接轉為16進制嗎
//當然可以:我分兩步講解,兩種方法,一個比較簡單,利用系統API,一個講原理稍微復雜一點!
importjava.util.Scanner;
publicclassTohex
{
//錄入數字用!
privatestaticScannersc=newScanner(System.in);
//容器,存放轉好的數字,也可以不用,也可以用數組!
privatestaticStringBuffersb;
publicstaticvoidmain(String[]args)
{
/*
Integer,這個類功能很強大,是Java提供的,想用可以查詢一下;
特點就是簡單拿來就用,新手不建議使用,搞懂進制轉換原理以後在去使用API事半功倍!
*/
System.out.println(" ==========裝16進制!========== 系統API(Integer)演示: ");
init();
}
//方法1,用系統API
privatestaticvoidinit()
{
//十進制!
inta=125454;
//轉換過程16進制!
Stringhex=Integer.toHexString(a);
System.out.println(a+"十六進制="+hex+" ------------------------------------ 自定義測試: ");
input();
}
//方法2:自己動手轉換,了解轉換原理!
privatestaticvoidinput()
{
while(true)
{
System.out.println("輸入被轉數字: ");
inta=sc.nextInt();
System.out.println("輸入想轉的進制:暫時支持2,8,16進制");
intb=sc.nextInt();
ToHex(a,b);
}
}
//轉換過程!
privatestaticvoidToHex(intx,inty)//a是要轉數字,b是進制!
{
sb=newStringBuffer();
inta=x,b=0,c=0;
switch(y)
{
case2:b=1;c=1;
break;
case8:b=7;c=3;
break;
case16:b=15;c=4;
break;
default:break;
}
while(a>0)
{
inttem=a&b;
Strings=tem>9?((char)(tem-10+'A'))+"":tem+"";
sb.append(s);
a=a>>>c;
}
print(sb);//傳遞列印!
}
//列印!
privatestaticvoidprint(StringBuffersb)
{
System.out.println(" 結果演示:"+sb.reverse()+" 請繼續輸入測試--->> ");
sb=null;
}
}
㈣ java 中如果將一個十六進制字元串轉化成一個ByteBuffer 比如0xFA 0xFA如何轉成ByteBuffer
import java.nio.ByteBuffer;
public class aa {
public static void main(String []args){
String str= "0xFA";
// 創建一個大小為str.length()的位元組緩沖區
ByteBuffer bytebuffer=ByteBuffer.allocate(str.length());
// 在這個位元組緩沖區中放入我們指定的 字元的位元組數組,得到表示指定字元的ByteBuffer
bytebuffer.put(str.getBytes());
// 列印ByteBuffer所表示的一個字元
// 反轉此緩沖區。首先將限制設置為當前位置,然後將位置設置為 0。
bytebuffer.flip();
System.out.println(new String(bytebuffer.array()));
//
}
}