最近我一直在使用我自己的Java 8 Bytecode反编译器。我遇到了一个以很好的方式检查类文件魔法的问题。如何将char数组的多个元素与一个十六进制值进行比较?
比方说,我有一个无符号的字符数组,并且元素0到3是魔术,总共4个字节的魔术。
下并不像写魔法检查一个非常吸引人的方式:
if ((data[0] != 0xCA) && (data[1] != 0xFE) && (data[2] != 0xBA) && (data[3] != 0xBE))
{
...
}
是否可以在更短的方式来写?像:
if (data[0 to 4] != 0xCAFEBABE)
{
...
}
static_cast不起作用,但reinterpret_cast会。 – tambre
@tambre,你是对的。我已经编辑了我的解决方案。 – cdonat