以太坊hex格式編碼
A. HEX文件格式有幾種
兩種,摩托羅拉和英特爾。
B. 請教如何將普通字元串轉成HEX編碼的字元串
/**
* 將普通字元串轉換成Hex編碼字元串
*
* @param dataCoding 編碼格式,15表示GBK編碼,8表示UnicodeBigUnmarked編碼,0表示ISO8859-1編碼
* @param realStr 普通字元串
* @return Hex編碼字元串
* @throws UnsupportedEncodingException
*/
public static String encodeHexStr(int dataCoding, String realStr) {
String hexStr = null;
if (realStr != null) {
try {
if (dataCoding == 15) {
hexStr = new String(Hex.encodeHex(realStr.getBytes("GBK")));
} else if ((dataCoding & 0x0C) == 0x08) {
hexStr = new String(Hex.encodeHex(realStr.getBytes("UnicodeBigUnmarked")));
} else {
hexStr = new String(Hex.encodeHex(realStr.getBytes("ISO8859-1")));
}
} catch (UnsupportedEncodingException e) {
System.out.println(e.toString());
}
}
return hexStr;
}
/**
* 將Hex編碼字元串轉換成普通字元串
*
* @param dataCoding 反編碼格式,15表示GBK編碼,8表示UnicodeBigUnmarked編碼,0表示ISO8859-1編碼
* @param hexStr Hex編碼字元串
* @return 普通字元串
*/
public static String decodeHexStr(int dataCoding, String hexStr) {
String realStr = null;
try {
if (hexStr != null) {
if (dataCoding == 15) {
realStr = new String(Hex.decodeHex(hexStr.toCharArray()), "GBK");
} else if ((dataCoding & 0x0C) == 0x08) {
realStr = new String(Hex.decodeHex(hexStr.toCharArray()), "UnicodeBigUnmarked");
} else {
realStr = new String(Hex.decodeHex(hexStr.toCharArray()), "ISO8859-1");
}
}
} catch (Exception e) {
System.out.println(e.toString());
}
return realStr;
}
}
C. 關於匯編指令的機器碼、HEX文件
你的程序,機器碼,僅僅是在第一行的 75 90 11。
後面的 FF 以及其它代碼,都不是你的程序,不必關心。
關於 HEX 文件內容的格式,有專門討論這個問題的文章。
到網路文庫搜一下,就能搜出來好多。
D. HEX文件格式
'05'的類型指 Start Linear Address Record
具體的意思是說,這個類型(05 type)記錄裡面的數據域的內容要寫進EIP 寄存器里邊。這樣的目的是為了在ISP編程之後,程序能夠立刻開始執行。詳情可以參考維基網路里邊的介紹。
E. 求救了解JPG格式的HEX編碼高手,JPG圖片感染了病毒,急恢復啊
首先,jpg文件是不可能感染病毒的.
你這兩個文件只是頭部99個位元組被修改了.與FF做了一個"異或"運算.
你編個程,把這99個位元組再運算一次就可以.
F. 123456789經過Hex編碼是什麼
僅僅是這些:123456789?
什麼也得不到。
因為編譯時,會提示:無效的...。
G. HEX編碼如何使用
hex編碼是十六進制的,一般不會直接用於網站,用來寫網站代碼的大多是asp,jsp,php之類的
H. hex碼是什麼
Intel HEX文件是由一行行符合Intel HEX文件格式的文本所構成的ASCII文本文件。在Intel HEX文件中,每一行包含一個HEX記錄。這些記錄由對應機器語言碼和/或常量數據的十六進制編碼數字組成。Intel HEX文件通常用於傳輸將被存於ROM或者EPROM中的程序和數據。大多數EPROM編程器或模擬器使用Intel HEX文件。
記錄格式
Intel HEX由任意數量的十六進制記錄組成。每個記錄包含5個域,它們按以下格式排列:
:llaaaatt[dd...]cc
每一組字母對應一個不同的域,每一個字母對應一個十六進制編碼的數字。每一個域由至少兩個十六進制編碼數字組成,它們構成一個位元組,就像以下描述的那樣:
: 每個Intel HEX記錄都由冒號開頭.
ll 是數據長度域,它代表記錄當中數據位元組(dd)的數量.
aaaa 是地址域,它代表記錄當中數據的起始地址.
tt 是代表HEX記錄類型的域,它可能是以下數據當中的一個:
00 – 數據記錄
01 – 文件結束記錄
02 – 擴展段地址記錄
04 – 擴展線性地址記錄
dd 是數據域,它代表一個位元組的數據.一個記錄可以有許多數據位元組.記錄當中數據位元組的數量必須和數據長度域(ll)中指定的數字相符.
cc 是校驗和域,它表示這個記錄的校驗和.校驗和的計算是通過將記錄當中所有十六進制編碼數字對的值相加,以256為模進行以下補足.
數據記錄
Intel HEX文件由任意數量以回車換行符結束的數據記錄組成.數據記錄外觀如下:
:
其中:
10 是這個記錄當中數據位元組的數量.
2462 是數據將被下載到存儲器當中的地址.
00 是記錄類型(數據記錄)
464C…464C是數據.
33 是這個記錄的校驗和.
擴展線性地址記錄(HEX386)
擴展線性地址記錄也叫作32位地址記錄或HEX386記錄.這些記錄包含數據地址的高16位.擴展線性地址記錄總是有兩個數據位元組,外觀如下:
:02000004FFFFFC
其中:
02 是這個記錄當中數據位元組的數量.
0000 是地址域,對於擴展線性地址記錄,這個域總是0000.
04 是記錄類型 04(擴展線性地址記錄)
FFFF 是地址的高16位.
FC 是這個記錄的校驗和,計算方法如下:
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).
當一個擴展線性地址記錄被讀取,存儲於數據域的擴展線性地址被保存,它被應用於從Intel HEX文件讀取來的隨後的記錄.線性地址保持有效,直到它被另外一個擴展地址記錄所改變.
通過把記錄當中的地址域與被移位的來自擴展線性地址記錄的地址數據相加獲得數據記錄的絕對存儲器地址.
以下的例子演示了這個過程..
來自數據記錄地址域的地址 2462
擴展線性地址記錄的數據域 + FFFF
------------
絕對存儲器地址 FFFF2462
擴展段地址記錄(HEX86)
擴展段地址記錄也叫HEX86記錄,它包括4-19位數據地址段.擴展段地址記錄總是有兩個數據位元組,外觀如下:
:020000021200EA
其中:
02 是記錄當中數據位元組的數量.
0000 是地址域.對於擴展段地址記錄,這個域總是0000.
02 是記錄類型 02(擴展段地址記錄)
1200 是地址段.
EA 是這個記錄的校驗和,計算方法如下:
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).
當一個擴展段地址記錄被讀取,存儲於數據域的擴展段地址被保存,它被應用於從Intel HEX文件讀取來的隨後的記錄.段地址保持有效,直到它被另外一個擴展地址記錄所改變.
通過把記錄當中的地址域與被移位的來自擴展段地址記錄的地址數據相加獲得數據記錄的絕對存儲器地址.
以下的例子演示了這個過程..
來自數據記錄地址域的地址 2462
擴展段地址記錄數據域 + 1200
---------
絕對存儲器地址 00014462
文件結束(EOF)記錄
Intel HEX文件必須以文件結束(EOF)記錄結束.這個記錄的記錄類型域的值必須是01.EOF記錄外觀總是如下:
:00000001FF
其中:
00 是記錄當中數據位元組的數量.
0000 是數據被下載到存儲器當中的地址.在文件結束記錄當中地址是沒有意義被忽略的.0000h是典型的地址.
01 是記錄類型 01(文件結束記錄)
FF 是這個記錄的校驗和,計算方法如下:
01h + NOT(00h + 00h + 00h + 01h).
Intel HEX文件例子:
下面是一個完整的Intel HEX文件的例子:
:
:
:03000000020023D8
:
:
:04003F00A42EFE22CB
:00000001FF
I. HEX編碼轉換為ASCII
你是不是這個意思:
從鍵盤輸入字元串9b ,將0x9bH這個值賦給一個變數(比方說char型或int型)
依次類推。
