// 清除标志位 为了得到正确的can_id,需要在解析之前清除可能设置的标志位。通过使用& 0x1FFFFFFF来实现,这个操作会清除can_id的高3位,确保结果得到的是纯粹的ID。
uint32_t clean_can_id = frame.can_id & 0x1FFFFFFF;
因为上面的问题 我不理解 所以来学习进制转换的应用 , 进制转换非常常见 , 如果你搞底层 这个是必须会的 , 我工作中也经常碰到 每次看到都非常头疼 , 学完就忘 然后大半年碰一次。进制转换不难理解的 , 配合计算器程序员模式 学习起来很快 , 难就难在很难记忆 , 这一次来系统的学习下。
一般用于嵌入式 , Driver 看datasheet 寄存器计算都有可能会碰见。C/C++出现的次数比较多。Java/kotlin网络相关的内容也比较常见。
进制转换在编程中的重要性
进制转换是指将一个数从一种进制表示方式转换 (计算)为另一种进制 (数)表示方式。例如,将十进制数10转换为二进制数1010,或者将十六进制数FF转换为十进制数255。在编程中,经常需要处理不同进制的数,因为计算机内部使用二进制来存储和处理数据,一般使用十进制来输入和输出数据。像我们搞开发的,我们还需要使用八进制或十六进制来表示数据&#