以太坊hexprefix
㈠ 關於匯編語言的簡單問題
mov bl, high 8030h
這條指令中high偽指令是取8030H的高位元組,不知道你是不是用的MASM有可能其它的編譯器不支持
㈡ 求一個java方法,將一個16位的0、1序列按照GBK方案解碼為一個字元
public class Testc {
public static void main(String[] args) {
int[] arr = new int[] { 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 };
StringBuffer str = new StringBuffer();
for (int i : arr) {
str.append(i);
}
try {
System.out.println(binaryToHex(str.toString()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String binaryToHex(String binaryString) {
Map<String, String> binaryHexPairs = new HashMap<String, String>();
binaryHexPairs.put("0001", "1");
binaryHexPairs.put("0010", "2");
binaryHexPairs.put("0011", "3");
binaryHexPairs.put("0100", "4");
binaryHexPairs.put("0101", "5");
binaryHexPairs.put("0110", "6");
binaryHexPairs.put("0111", "7");
binaryHexPairs.put("1000", "8");
binaryHexPairs.put("1001", "9");
binaryHexPairs.put("1010", "A");
binaryHexPairs.put("1011", "B");
binaryHexPairs.put("1100", "C");
binaryHexPairs.put("1101", "D");
binaryHexPairs.put("1110", "E");
binaryHexPairs.put("1111", "F");
int prefixLen = (4 - binaryString.length() % 4) % 4;
String prefix = "";
for (int i = 0; i < prefixLen; ++i) {
prefix += "0";
}
binaryString = prefix + binaryString; // 按四的倍數把二進制補齊, 不足的前面補0
// 四個二進制位轉換成一個十六進制位
StringBuilder sb = new StringBuilder("0x");
for (int i = 0; i < binaryString.length(); i += 4) {
sb.append(binaryHexPairs.get(binaryString.substring(i, i + 4)));
}
return sb.toString();
}
}