我正在尝试使用 Python 通过重复减去一系列 8 位值来计算校验和。但是,我不知道如何在 Python 中执行此操作。
在上下文中: 我尝试将以下 C 代码转换为 Python:
#define uint8_t unsigned char
static uint8_t fix_header(uint8_t *header) {
uint8_t sum = 0;
uint8_t count = 0xbc - 0xa0;
/* complement check of 0xa0 - 0xbc */
header = header + 0xa0;
while (count-- > 0) {
sum = sum - *header++;
}
sum = (sum - 0x19);
return sum;
这是GBA 游戏标头的校验和代码。我无法在 Python 中复制它。除了 之外,我什么都能做sum = sum - *header++;
,因为(据我所知)Python 对变量的大小没有限制。我已经尝试过使用 Python 进行此操作int
,但这会给出不正确的校验和。据我所知,8 位限制正在做一些我不理解或不知道的特殊事情。
感谢您的帮助!