MATLAB的两种移位运算:

1)circshift矩阵移位

circshift:循环移位数组

语法:B = circshift(A,shiftize)

说明:

B  = circshift(A,shiftize)通过shiftize元素循环移位数组A中的值。shiftize是整数标量的向量,其中第n个元素指定数组A的第n维的移位量。如果移位中的元素为正,则A的值向下(或向右)移位。如果是负数,则A的值向上(或向左)移动。如果为0,则不移动该维度中的值。

示例:

将第一维值向下循环移动1. 
A = [1 2 3; 4 5 6; 7 8 9] 
A = 
     1      2      3 
     4      5      6 
     7      8      9

B =环球(A,1)
B = 
     7      8      9 
     1      2      3 
     4      5      6

将第一维值向下循环1,将第二维值向左
循环1. B = circshift(A,[1 -1]); 
B = 
    8      9      7 
    2      3      1 
    5      6      4

2)bitshift位移位

bitshift:
移位位指定的位数

句法 :

C = bitshift(A,k)
C = bitshift(A,k,n)

说明:

C = bitshift(A,k)返回移位了k位的A的值。输入参数A必须是无符号整数或无符号整数数组。通过k移位与乘以2 ^ k相同。允许k的负值,这对应于向右移位,或者除以2 ^ abs(k)并截断为整数。如果移位导致C溢出无符号整数类A中的位数,则丢弃溢出位。

C = bitshift(A,k,n)导致任何溢出n位的位被丢弃。n的值必须小于或等于A的无符号整数类的位长(例如,对于uint32,n <= 32)。

而不是使用bithift(A,k,8)或n的另一个幂2,考虑使用bitshift(uint8(A),k)或适当的无符号整数类。

例子:

例1 
将1100(12,十进制)移位到左边的两位产生110000(48,十进制)。
C = bitshift(12,2)
C = 
   48

例2

重复地将无符号16位值的位向左移位,直到所有非零位溢出。跟踪二进制的进度:
a = intmax('uint16'); 
disp(sprintf(... 
  '初始uint16值%5d是二进制中的%16s',... 
  a,dec2bin(a)))

对于k = 1:16 
  a = bitshift(a,1); 
  disp(sprintf(... 
      'Shifted uint16 value%5d is binary 16s in binary',... 
      a,dec2bin(a)))
  end

最新文章

  1. USB传输协议。——Arvin
  2. Eclipse linux tools 插件
  3. PHP定时器实现每隔几秒运行一次
  4. [CLR via C#]18. Attribute
  5. github -- fork提交项目
  6. CENTOS6.5 teamviewer安装
  7. scala 101
  8. (翻译) Android ListView 性能优化指南
  9. activeMQ的简单介绍
  10. TP5.0 excel 导入导出
  11. Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013
  12. Hack The Box 获取邀请码
  13. wps excel
  14. luogu T40984Chino的成绩
  15. 【2016.3.18】作业 VS2015安装&amp;单元测试(2)
  16. tomcat 查看和修改内存
  17. CentOS7上安装RabbitMQ
  18. 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient)
  19. C++的MFC 与 HTML 双向通讯
  20. POJ 2250

热门文章

  1. Java 雇员管理小练习(理解面向对象编程)
  2. Docker 镜像运行时区不准确处理
  3. Mysql数据库单表查询
  4. BZOJ2820: YY的GCD(反演)
  5. vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效解决方法
  6. link标签链接CSS和@import加载的区别
  7. NFS共享权限挂载
  8. Android之移动热修复
  9. linux网络 skb_buff
  10. LeetCode题解之Insert into a Binary Search Tree