以太坊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();
}
}