小编Leg*_*ser的帖子

表达式必须是可修改的左值(当试图附加到数组时)

我有以下内容:

uint16_t Hitcount[64]; //64-byte array buffer 
uint16_t Br; 
int StdWidth = 38;
int widthpad = 8;
int W;
uint16_t blocks;


if (W <= (StdWidth + widthpad) && W >= (StdWidth - widthpad) && blocks == 1) {
        Hitcount += Br;
    }
Run Code Online (Sandbox Code Playgroud)

如果"W"在一定范围内,我的目标是将"Br"附加到数组"Hitcount".但是,"Hitcount"表示错误"表达式必须是可修改的左值".我有没有我的数据类型和一切顺序?

如果这与已发布的其他问题太接近,请道歉.我看着他们,但是由于我的知识有限,他们无法将这些与他们联系起来.

c++ lvalue

-1
推荐指数
1
解决办法
618
查看次数

寻找除以2的最快方法

我搜索了半天,发现了一些非常有趣的事情,关于在C++中使用定点数据类型和位移来完成除法运算,同时避免浮点数学运算.但是,我只能理解它的一小部分,我似乎无法得到任何工作.

我想要做的就是取两个整数,加上它们,除以2得到平均值.我需要能够非常快速地做到这一点,因为我在Arduino上插入相机像素数据,我还有其他操作要做.

所以我对一般的转变感到困惑.假设我想要除以2的整数是27. 27的一半是13.5.但无论我尝试什么定点数据类型,我只能得到13作为输出.例如:

uint8_t  x = 27;
Serial.println(  x >> 1 );
Run Code Online (Sandbox Code Playgroud)

返回13

必须有一些简单的方法来做到这一点,对吧?

c++ floating-point fixed-point

-1
推荐指数
1
解决办法
497
查看次数

标签 统计

c++ ×2

fixed-point ×1

floating-point ×1

lvalue ×1