最近我一直在使用我自己的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