发新帖我要提问
12
返回列表
打印

请教算法高手,数组数据如何快速移位操作

[复制链接]
楼主: 古道热肠
手机看帖
扫描二维码
随时随地手机跟帖
21
xhtxzxw| | 2008-2-1 23:48 | 只看该作者 回帖奖励 |倒序浏览

嘿嘿,错了,还是忘记一个运算符了

void Lshift_bit_in_bytes(char x[], char len)
{
    char i;
    for(i=0; i<len-1; i++)
        x = (char)((((int)(x<<8 + x[i+1]))<<1)>>8);
    x[len-1] <<= 1;
}

使用特权

评论回复
22
xhtxzxw| | 2008-2-1 23:56 | 只看该作者

嘿嘿,今天真是喝高了

打错一个符号,= -〉+

使用特权

评论回复
23
古道热肠|  楼主 | 2008-2-2 12:17 | 只看该作者

多谢大家关注

尤其要感谢的是“xhtxzxw”网友更是热情有加。

网友提到的将数据并合(强制转换)成integer,long 甚至long long,再进行处理,对32位机或64位机有效,但对广泛应用的8位机来说,只怕是得不偿失。

用指针替代数组进行数据的操作是能提高执行速度的。因为本人查看C语言编译源码,指针会用到汇编中的“基址变址寻址”来实现,而这种操作对缓冲区字符串数据处理起来尤其方便。

大家再多想想吧,想得不好和不对的,都不要紧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则