直接进入test函数:
下面的代码进行第一步操作:
首先a1的长度应该为19。
接下来对s2进行异或处理。
题目中给出的s2的值如下:
s2 = 0x3929531D01070A00LL;
v4 = 0x391257391F150703LL;
v5 = 0x150F;
v6 = 0x1B;
s2是int64类型,共有8个字节。由于s2、v4、v5和v6的地址是相连的,所以当从s2的起始地址开始进行19个字节的异或处理时,v4、v5和v6中的数值也会被处理。
由于s2占据了多个字节,在存储的过程中,一定存在着先分配的字节放在高地址还是低地址的问题。在s2中先分配的字节应该是放在了低地址处。
对s2、v4、v5和v6中的元素按顺序写出,应为:
s2 = 0x00,0x0A,0x07,0x01,0x1D,