首页
社区
课程
招聘
[求助]else部分的代码在做什么
发表于: 2008-2-20 14:59 3850

[求助]else部分的代码在做什么

2008-2-20 14:59
3850
int DecodeElement()
{
        int thiscode,tempcode;
        unsigned short temp,valueex;
        short codelen;
        BYTE hufexbyte,runsize,tempsize,sign;
        BYTE newbyte,lastbyte;

......

// else部分的代码在做什么?

        sign = valueex >> ( runsize - 1 );
        if( sign )
                vvalue = valueex;
        else {
                valueex = valueex ^ 0xffff;  
                temp = 0xffff << runsize;
                vvalue = -(short)(valueex ^ temp);
             }
}

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 709
活跃值: (2590)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
C语言的基本知识:
'
valueex = valueex ^ 0xffff;

xor后赋值, 比如 valueex 为0x12345078. 则valueex ^ 0xffff 后为 0x00005078

temp = 0xffff << runsize;

<< 表示左移 runsize 个位. 比如runsize = 2, 则结果为0xff00

vvalue = -(short)(valueex ^ temp);

0x00005078 ^ 0xff00 = 0x00005000
short是2字节.即 16 bits. 所以取 0x00005000 的低16位 得到0x5000
再+个负号即可.

-----------------------------------------------------------------------------

不知LZ明白否
2008-2-20 15:28
0
游客
登录 | 注册 方可回帖
返回