You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CRC16校验问题:C代码转Kotlin/Java后校验和不一致

C语言CRC16计算代码转Kotlin后结果不符问题

我在将一段正确的C语言CRC16计算代码转换为Kotlin代码时遇到了问题,转换后的代码生成的CRC16校验和与原C代码的结果不一致。

原C代码

// data_buf 类型为 uint8_t
uint16_t crc = 0;
for(uint32_t i = 0; i < BUF_SIZE; i++)
{
    crc += data_buf[i];
}

尝试的Kotlin代码(均未得到正确结果)

第一段代码

// DFUFile 类型为 ByteArray
var i = 0
var crc: UShort = 0u
while(i < DFUFile.size) {
    crc = (crc + DFUFile[i].toUShort()).toUShort()
    i += 1
}

第二段代码

// DFUFile 类型为 ByteArray
var crc = 0
var i = 0
while(i < DFUFile.size) {
     crc = (crc + DFUFile[i].toInt()) and 0x0000FFFF
     i += 1
}

内容的提问来源于stack exchange,提问作者AkroB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:29:09