我有以下内容:
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++中使用定点数据类型和位移来完成除法运算,同时避免浮点数学运算.但是,我只能理解它的一小部分,我似乎无法得到任何工作.
我想要做的就是取两个整数,加上它们,除以2得到平均值.我需要能够非常快速地做到这一点,因为我在Arduino上插入相机像素数据,我还有其他操作要做.
所以我对一般的转变感到困惑.假设我想要除以2的整数是27. 27的一半是13.5.但无论我尝试什么定点数据类型,我只能得到13作为输出.例如:
uint8_t x = 27;
Serial.println( x >> 1 );
Run Code Online (Sandbox Code Playgroud)
返回13
必须有一些简单的方法来做到这一点,对吧?