如何将下面的代码转换成python代码,它是针对校验和的。请有人能给我一些方向,学习一些东西来实现这一点

2024-09-27 22:26:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,想把C中的一段代码改成python。有人能给我引路吗。这是一个校验码。你知道吗

unit16_t CheckSum1ByteIn2ByteOut(unit8_t* data, int len)
{
    unit16_t checksum = 0;
    ASSERT(Null != data);
    for(int i = 0;i < len; i++)
    {
        checksum +=data[i];
    }
    checksum = ~checksum;
    return checksum;
}

Tags: 代码fordatalenreturnassertnullint
1条回答
网友
1楼 · 发布于 2024-09-27 22:26:27

给定python3和data作为bytes,可以得到无符号字节的整数和作为sum(data)。结果不是16位,而是无限精度整数。然后可以将其反转-这将导致对总和的无限制精度补码,它将是一个负整数然后用二进制和钳制到16位。如果代码是

def checksum(data: bytes) -> int:
    return (~sum(data)) & 0xFFFF 

相关问题 更多 >

    热门问题