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

[复制链接]
7325|23
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;
}
xhtxzxw 发表于 2008-2-1 23:56 | 显示全部楼层

嘿嘿,今天真是喝高了

打错一个符号,= -〉+
 楼主| 古道热肠 发表于 2008-2-2 12:17 | 显示全部楼层

多谢大家关注

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

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

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

大家再多想想吧,想得不好和不对的,都不要紧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部