给出一个算法满足输入0x46 0x00 0x00 0x00 0x94 0xF4 0x24 0x00 0x55得到0x26并且满足输入0x46 0x00 0x00 0x00 0x94 0xF4 0x24 0x01 0x55得到0x8D
算法如下:
-
定义一个变量sum,初始值为0。
-
对输入列表中除最后一项之外的所有元素进行累加,即sum = 0x46 + 0x00 + 0x00 + 0x00 + 0x94 + 0xF4 + 0x24 + 0x00 = 0x1F8。
-
将sum的低8位与输入列表的最后一项进行异或操作,即result = 0x1F8 ^ 0x55 = 0xAD。
-
如果输入列表的倒数第二项为0x00,则将result加1,否则将result减1,即result = 0xAD + 1 = 0xAE。
-
返回result的低8位,即0xAE & 0xFF = 0x2E,即为输出结果[0x26]。
-
对于输入[0x46 0x00 0x00 0x00 0x94 0xF4 0x24 0x01 0x55],重复以上步骤,得到result = 0x2C,即为输出结果[0x8D]。
原文地址: http://www.cveoy.top/t/topic/eGHE 著作权归作者所有。请勿转载和采集!