将c ++移植到python代码

时间:2011-03-11 22:47:22

标签: c++ python

我想将此C ++代码转换为Python v2:

static unsigned char asConvCode[3] = {0xFC, 0xCF, 0xAB};

void asConv(char* str, int size)
{
    int i = 0;

    for (i = 0; n< size; n++)
    {
        str[i] ^= asConvCode[n % 3];
    }
}

尝试这样做:

def asConv(self, data):
    asConvCode= [0xFC, 0xCF, 0xAB]

    for i in range(len(data)):
        data[i] ^= asConvCode[i % 3] # Error: Unsupported operand type(s) for ^=: ...

        return data

我会很高兴任何提示

1 个答案:

答案 0 :(得分:2)

在Python中,字符串中的字符只是长度为1的字符串,而不是整数。所以你必须使用它:

data[i] = chr(ord(data[i]) ^ asConvCode[i % 3])

另外,正如我在评论中写的那样,你的return data处于错误的缩进级别,并且会在处理完第一个字符后返回你的函数。