c - 数组索引和计数器溢出
问题描述
我有一个测量笔画的计数器。我在微控制器中分配了 3 个字节,这意味着我的计数最多为 16777216。我想保持计数,但是当我的计数超过 255 时,数组的 LSB 被重置为零,我被困在如何通过递增来递增到下一个数组元素数数
我努力了
Counterarray[strokelsb] = strokecount;
if(strokecount > 255)
Counterarray[strokemid] = strokecount |Counterarray[strokelsb] ;
Counterarray[strokelsb] = strokecount;
if(strokecount > 255)
Counterarray[strokemid] = strokecount |Counterarray[strokelsb] ;
预期结果
Counterarray[strokelsb] = oxFF
Counterarray[strokemid] + Counterarray[strokelsb] = 4095
解决方案
我不确定变量是strokecount
什么,这个变量的类型是什么。您不需要此变量来拥有 3 字节计数器。
下面的计数器将从 0 计数到 16777215 并翻转。
if (//counter logic for one tick over)
{
Counterarray[strokelsb]++;
if (Counterarray[strokelsb] == 0x00)
{
Counterarray[strokemid]++;
if (Counterarray[strokemid] == 0x00)
{
Counterarray[strokemsb]++;
}
}
}
推荐阅读
- sql-server - 动态 SQL - 将午夜计数分配给正确的月份
- java - Oracle SQLLDR 实用程序无响应
- performance - Python 3.x 中的百分比格式化速度是 f 字符串的两倍
- android - 如何在动态添加的 EditText 上设置边距?
- java - 试图使状态栏和导航栏半透明,不透明
- python - 需要帮助完成密码转换代码
- javascript - 如何在html中插入js
- c++ - 点运算符 (.) 是“真实”运算符吗?
- reactjs - 反应js获取jwt令牌以加载api但登录后返回401
- python - 关于 Miniconda 环境的说明