【发布时间】:2018-01-20 15:24:44
【问题描述】:
我正在寻找这个函数的返回值:
char __slp_f1tb1t(char x) {
const static unsigned char _[2][2][2][2] = {
{ { { 0x00, 0x10 }, { 0x20, 0x30 } },
{ { 0x40, 0x50 }, { 0x60, 0x70 } } },
{ { { 0x80, 0x90 }, { 0xA0, 0xB0 } },
{ { 0xC0, 0xD0 }, { 0xE0, 0xF0 } } }
};
return _[!!(x&0x80)][!!(x&0x40)][!!(x&0x20)][!!(x&0x10)] | (x&15);
}
我应该如何继续?我想我不明白 char _[2][2][2][2] 是什么意思。
【问题讨论】:
-
_是 4-D 阵列的标识符。 -
好的!但是,我不知道如何继续。
-
看第一个索引计算。如果设置了参数
x的第 7 位,x&0x80将为非 0。!会将其减少为布尔值0或1。另一个!将反转它。因此表达式简化为0或1,它们是范围内的有效索引值。其他指数计算也是如此。 -
@LudovicoBessi.:检查答案
标签: c deobfuscation