我需要一点帮助,把C语言翻译成python语言。我已经有4年没有用过c++了,当我用它的时候,我只更新了一些基础知识。此代码段的上下文正在读取文件并创建校验和
int ff7_checksum( void* qw )
{
int i = 0, t, d;
long r = 0xFFFF, len = 4336;
long pbit = 0x8000;
char* b=(char*)qw;
while( len-- ) {
t = b[i++];
r ^= t << 8;
for(d=0;d<8;d++) {
if( r & pbit )
r = ( r << 1 ) ^ 0x1021;
else
r <<= 1;
}
r &= ( 1 << 16 ) - 1;
}
return (r^0xFFFF)&0xFFFF;
}
我假设
qw
指向一个已知大小(4336)的缓冲区,该缓冲区并不真正表示字符串(即它可能包含仍应处理的\0
字符)。在但是,在Python(2.x)中,我们通常仍然将其建模为字符串,因为字符串可能包含嵌入的
\0
字节,并且知道它自己的长度。因此,也没有理由硬编码长度。更惯用地说,我们得到的结果是:
相关问题 更多 >
编程相关推荐