【发布时间】:2012-04-28 21:19:33
【问题描述】:
我有一个字符数组,我试图将它们按位右移>>,然后& 与另一个数组一起移动。我想我对如何做到这一点有错误的想法。
我想,即使只是说明 my_array >>= 1 的字符数组也会改变所有内容,但我收到了一个错误:"error: invalid operands to binary >> (have ‘char[8]’ and ‘int’)"
我正在尝试做的按位比较是使用类似大小的数组启动到所有“0”...我得到:"error: invalid operands to binary & (have ‘char *’ and ‘char *’)"
我需要先将这些数组转换成别的东西,然后才能移动和比较?
对不起,我不是很清楚......到目前为止,所有的好建议,我想我越来越意识到没有超级简单的方法可以做到这一点。更具体地说,我要做的是将整个 char 数组的位向右移动 1,将右移的位添加到数组的最左侧,与另一个相同大小的数组进行按位比较。
从技术上讲,比较不必是数组与数组...我只需要这些位。在尝试进行移位/比较之前将数组转换为其他内容会更容易吗?
【问题讨论】:
-
您是要旋转数组的内容,还是要按位移动数组的每个单独元素?这些操作在 C 中都不存在。您需要编写一个循环,将每个元素复制到一个位置,或者按位移动数组中的每个元素。
标签: c bit-manipulation