声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7772|回复: 10

[编程技巧] 怎样用matlab实现左移运算

[复制链接]
发表于 2009-1-9 20:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
怎样用matlab实现左移运算?希望各位大侠帮忙!谢谢!
我要实现的是左移不是循环左移?下面是我写的代码:
m=[i(5:end) 0 0 0 0];是实现左移4位,i是移位前的数。但是结果不对???
回复
分享到:

使用道具 举报

发表于 2009-1-9 20:46 | 显示全部楼层

回复 楼主 hyhthb 的帖子

左移运算? 可否举例!?
发表于 2009-1-9 22:16 | 显示全部楼层

  1. ?a=1:10
  2. a =
  3.      1     2     3     4     5     6     7     8     9    10
  4. ?n=3;
  5. ?b=[a(n+1:end),zeros(1,n)]
  6. b =
  7.      4     5     6     7     8     9    10     0     0     0
复制代码
发表于 2009-1-9 22:21 | 显示全部楼层

回复 沙发 ChaChing 的帖子

我也只能按照楼主的帖子瞎猜一下,或许是楼上的意思吧。
不过,在计算机术语中有一个“左移运算”,是把一个数值按位左移,不知道这个术语两岸是否一致。

12.7 左移运算符

左移运算的实质是将对应的数据的二进制值逐位左移若干位,并在空出的位置上填0,最高位溢出并舍弃。例如
int a,b;
a=5;
b=a<<2;
则b=20,分析过程如下:
(a)10=(5)10=(0000 0000 0000 0101)2
b=a<<2;
b=(0000 0000 0001 0100)2=(20)10
从上例可以的知b/a=4=22,可以看出位运算可以实现二倍乘运算。由于位移操作的运算速度比乘法的运算速度高很多。因此在处理数据的乘法运算的时,采用位移运算可以获得较快的速度。
提示 将所有对2的乘法运算转换为位移运算,可提高程序的运行效率

[ 本帖最后由 sogooda 于 2009-1-9 22:30 编辑 ]

评分

1

查看全部评分

发表于 2009-1-9 22:38 | 显示全部楼层

回复 地板 sogooda 的帖子

谢谢! 又知道些许东东了!
将所有对2的乘法运算转换为位移运算,可提高程序的运行效率

[ 本帖最后由 ChaChing 于 2009-1-10 07:39 编辑 ]
发表于 2009-1-10 14:48 | 显示全部楼层

回复 5楼 ChaChing 的帖子

刚刚找到,bitshift可以实现移位运算功能,但是只对整数有效。

  1. C = bitshift(12, 2)
  2. C =
  3.     48

  4. bitshift(5.3,1)
  5. ??? Error using ==> bitshift
  6. Inputs must be integers.

复制代码
其他的位运算函数也列出来供大家参考吧。
bitand
按位与

bitor
按位或

bitxor
按位异或

bitcmp
按位取反

bitget
获取某一位

bitset
设置某一位

[ 本帖最后由 sogooda 于 2009-1-10 14:58 编辑 ]

评分

1

查看全部评分

发表于 2009-1-10 16:58 | 显示全部楼层

回复 6楼 sogooda 的帖子

对楼主可能有所帮助!
 楼主| 发表于 2009-1-14 10:40 | 显示全部楼层
:@) 谢谢大家的热心帮助!
 楼主| 发表于 2009-1-14 11:12 | 显示全部楼层
就是sogooda所说的那种,还有一种是循环左移也就是溢出的位放在空位上,比如:
a=[1 2 3 4 5 6 7 8 9]循环左移2位后a=[3 4 5 6 7 8 9 1 2]
发表于 2009-1-14 13:14 | 显示全部楼层
发表于 2009-1-14 13:51 | 显示全部楼层

  1. ?a=1:10
  2. a =
  3.      1     2     3     4     5     6     7     8     9    10
  4. ?n=3;
  5. ?b=[a(n+1:end),a(1:n)]
  6. b =
  7.      4     5     6     7     8     9    10     1     2     3
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-14 05:32 , Processed in 0.057455 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表