javahex
『壹』 如何用java代碼寫 Hex文件轉bin文件
單片機的hex轉bin?
這個其實不算太難。
hex有格式的,根據格式,轉成byte[],再寫入文件就是了。最重要的工作就是16進制字元轉兩位byte[]。
『貳』 java中十六進制怎麼轉換為2進制
java十六進制轉換為2進制示例如下:
publicclassHex2Binary
{
publicstaticvoidmain(String[]args)
{
StringhexString="ABCD";
System.out.println(hexString2binaryString(hexString));
}
(StringhexString)
{
if(hexString==null||hexString.length()%2!=0)
returnnull;
StringbString="",tmp;
for(inti=0;i<hexString.length();i++)
{
tmp="0000"
+Integer.toBinaryString(Integer.parseInt(hexString
.substring(i,i+1),16));
bString+=tmp.substring(tmp.length()-4);
}
returnbString;
}
}
『叄』 以下這段JAVA代碼 hexSHA1散列加密解密,轉成PHP代碼,該如何寫
java 的加密解密,換成PHP的加密解密就好了呀
『肆』 hex是什麼進制
hex是十六進制。十六進制,簡寫為hex或下標16,是一種基數為16的計數系統,是一種逢16進1的進位制,通常用數字0,1,2,3,4,5,6,7,8,9和字母A,B,C,D,E,F,a,b,c,d,e,f,表示,其中,A到F表示10到15,這些稱作十六進制數字。
hex換算特點
例如十進制數57,在二進制寫作111001,在16進制寫作39,如今的16進制則普遍應用在計算機領域,這是因為將4個位元化成單獨的16進制數字不太困難。
1位元組可以表示成2個連續的16進制數字,可是,這種混合表示法容易令人混淆,因此需要一些字首,字尾或下標來顯示。
『伍』 java 程序怎麼計算.hex文件校驗和
JAVA 讀進來,一樣相加
int n=0xff&(0x01 +~(0x02 + 00 + 00 + 0x02 + 0x12 + 00));
String a=Integer.toHexString(n);
System.out.println(a);
『陸』 急,急急,跪求java十六進制轉換成二進制(要自己寫演算法),再把得到的二進制數取反後,在轉換成十六進制
Java程序:
public class Test29 {
public static void main(String[] args) {
String hex = "12345abcdef67890";
String bin;
bin = Transform.convertHexToBin(hex);
System.out.println(hex + " --> " + bin);
hex = Transform.convertBinToHex(bin);
System.out.println(bin + " --> " + hex);
}
}
class Transform{
private static String[] hexs = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f"};
private static String[] bins = new String[]{"0000", "0001", "0010", "0011", "0100", "0101",
"0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
//將十進制數hex轉換為二進制數並返回
public static String convertHexToBin(String hex){
StringBuffer buff = new StringBuffer();
int i;
for(i=0; i<hex.length(); i++){
buff.append(getBin(hex.substring(i,i+1)));
}
return buff.toString();
}
//將二進制數bin轉換為十六進制數並返回
public static String convertBinToHex(String bin){
StringBuffer buff = new StringBuffer(bin);
int i;
if(bin.length()%4 != 0){//左補零
for(i=0; i<(4-bin.length()%4); i++){
buff.insert(0, "0");
}
}
bin = buff.toString();
buff = new StringBuffer();
for(i=0; i<bin.length(); i+=4){
buff.append(getHex(bin.substring(i,i+4)));
}
return buff.toString();
}
//返回十六進制數的二進制形式
private static String getBin(String hex){
int i;
for(i=0; i<hexs.length && !hex.toLowerCase().equals(hexs[i]); i++);
return bins[i];
}
//返回二進制數的十六進制形式
private static String getHex(String bin){
int i;
for(i=0; i<bins.length && !bin.equals(bins[i]); i++);
return hexs[i];
}
}
運行測試:
12345abcdef67890 -->
--> 12345abcdef67890
『柒』 java中 hex 轉換成字元串 怎麼轉
java中 hex 轉換成字元串方法:
public class Test {
private static String hexString = "0123456789ABCDEFabcdef";
public static void main(String[] args) {
String msg= "親,你好";
System.out.println(encode(msg));
System.out.println(decode(encode(msg)));
}
public static String encode(String str) {
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
//轉換hex編碼
for (byte b : bytes) {
sb.append(Integer.toHexString(b + 0x800).substring(1));
}
str = sb.toString();
return str;
}
//把hex編碼轉換為string
public static String decode(String bytes) {
bytes = bytes.toUpperCase();
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
// 將每2位16進制整數組裝成一個位元組
for (int i = 0; i < bytes.length(); i += 2)
baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1))));
return new String(baos.toByteArray());
}
}
『捌』 java後台返回了一段hex數據,前端如何轉化為圖片
兩種思路,一種是你把圖片下下來。告訴路徑給前端。
另一種是你直接把圖片轉換成byte數組,返回給前端。前端是可以有辦法的。(我用過這種用來爬蟲爬驗證碼都是這么乾的)
『玖』 java hex 字元串怎麼轉換
private static String hexString = "0123456789ABCDEF";
public static void main(String[] args) {
System.out.println(encode("中文"));
System.out.println(decode(encode("中文")));
}
/*
* 將字元串編碼成16進制數字,適用於所有字元(包括中文)
*/
public static String encode(String str) {
// 根據默認編碼獲取<a href="https://www..com/s?wd=%E5%AD%97%E8%8A%82%E6%95%B0%E7%BB%84&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">位元組數組</a>
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
// 將<a href="https://www..com/s?wd=%E5%AD%97%E8%8A%82%E6%95%B0%E7%BB%84&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">位元組數組</a>中每個位元組拆解成2位16進制整數
for (int i = 0; i < bytes.length; i++) {
sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
}
return sb.toString();
}
/*
* 將16進制數字解碼成字元串,適用於所有字元(包括中文)
*/
public static String decode(String bytes) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
// 將每2位16進制整數組裝成一個位元組
for (int i = 0; i < bytes.length(); i += 2)
baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString
.indexOf(bytes.charAt(i + 1))));
return new String(baos.toByteArray());
}