【发布时间】:2014-07-03 09:41:45
【问题描述】:
int samples = 8;
for (unsigned int i = 0; i < (pow(double(2),samples)-1); i++)
{
unsigned int number = i << 1;
}
我正在使用 Opencv 库在 C++ 中进行编码。 我想通过它进行位移,这应该在 0-255 的范围内,但它正在跨越 255 的范围并一直到 508。
在 Matlab 中,移位运算符的范围保持在 0-255 之间。 matlab中的模式是0,2,4...254,1,3,5...255。但在 C++ 中,它的值是 0,2,4,254,256,258...508。 我想要和matlab一样的答案。请给我一些建议。
【问题讨论】:
-
此序列似乎与Matlab documentation for bitshift 不匹配。实际上,我认为所描述的是具有 8 位宽度的rotate left