来源:https://ww2.mathworks.cn/help/matlab/ref/bitshift.html?searchHighlight=bitshift&s_tid=doc_srchtitle

itshift

将位移动指定位数

全页折叠
 

说明

示例

intout = bitshift(A,k) 返回向左偏移 k 位的 A,这等效于乘以 2kk 的负值与向右移位或除以 2|k| 并向负无穷舍入到最接近的整数相对应。将截断任何溢出位。

  • 如果 A 是有符号的整数数组,则 bitshift 返回算数偏移结果,并在 k 为负时保留有符号的位,k 为正时不保留有符号的位。

  • 如果 k 为正,MATLAB 将位左移,并在右侧插入 k 0 位。

  • 如果 k 为负,并且 A 为非负,MATLAB 将位右移,并在左侧插入 |k| 0 位。

  • 如果 k 为负,并且 A 为负,MATLAB 将位右移,并在左侧插入 |k| 1 位。

示例

intout = bitshift(A,k,assumedtype) 假定 A 的类型为 assumedtype

 

示例

全部折叠

偏移的 8 位整数

反复将无符号的 8 位值的位左移,直到所有非零位溢出为止。

a = intmax('uint8');
s1 = 'Initial uint8 value %5d is %08s in binary\n';
s2 = 'Shifted uint8 value %5d is %08s in binary\n';
fprintf(s1,a,dec2bin(a))
Initial uint8 value   255 is 11111111 in binary
 for i = 1:8
a = bitshift(a,1);
fprintf(s2,a,dec2bin(a))
end
Shifted uint8 value   254 is 11111110 in binary
Shifted uint8 value 252 is 11111100 in binary
Shifted uint8 value 248 is 11111000 in binary
Shifted uint8 value 240 is 11110000 in binary
Shifted uint8 value 224 is 11100000 in binary
Shifted uint8 value 192 is 11000000 in binary
Shifted uint8 value 128 is 10000000 in binary
Shifted uint8 value 0 is 00000000 in binary
 
 

不同整数类型的不同结果

使用不同的假定整数类型为数字求偏移量。

uintout = bitshift(6,5:7,'uint8')        %%   5:7   =  5 6 7  矩阵
uintout = 1×3

   192   128     0
intout = bitshift(6,5:7,'int8')
intout = 1×3

   -64  -128     0
 
 

输入参数

全部折叠

A - 输入值
数组

输入值,指定为数组。A 可以是标量或与 k 大小相同的数组。

  • 如果 A 为双精度数组,并且未指定 assumedtype,则 MATLAB 会将 A 视为无符号的 64 位整数。

  • 如果已指定 assumedtypeA 中的所有元素必须是 assumedtype 类型范围内的整数值。

数据类型: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

k - 交换位数
整数 | 整数数组

交换的位数,指定为整数或整数数组。k 可以是标量或与 A 大小相同的数组。

数据类型: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

assumedtype - 假定的 A 的数据类型
'uint64' | 'uint32' | 'uint16' | 'uint8' | 'int64' | 'int32' | 'int16' | 'int8'

假定的 A 的数据类型,指定为 'uint64''uint32''uint16''uint8''int64''int32''int16''int8'

  • 如果 A 是整数类型数组,assumedtype 必须指定相同的整数类型。

  • 如果 A 是双精度数组,则 assumedtype 可以指定任何有效的整数类型。

数据类型: char | string

输出参数

全部折叠

intout - 移位后的值
数组

移位后的值,以数组形式返回。intout 的数据类型与 A 相同。

  • 如果 Ak 是标量,则 intout 也是标量。

  • 如果 Ak 为数组,则 intout 的大小与该数组相同。

扩展功能

C/C++ 代码生成
使用 MATLAB Coder 生成 C 代码和 C++ 代码。

GPU 数组
通过使用 Parallel Computing Toolbox 在图形处理单元 (GPU) 上运行来加快代码执行。

用法说明和限制:

  • 至少有一个输入(Ak)必须是整数数组。

  • 输入 A 不能是有符号整数数组。

  • 不支持 64 位整数。

  • 不支持 assumedtype 参数。

有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

另请参阅

bitand | bitcmp | bitget | bitor | bitset | bitxor | intmax

在 R2006a 之前推出

matlab中bitshift 将位移动指定位数的更多相关文章

  1. matlab中for 用来重复指定次数的 for 循环

    参考:https://ww2.mathworks.cn/help/matlab/ref/for.html?searchHighlight=for&s_tid=doc_srchtitle for ...

  2. JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.

    怎么使float保留两位小数或多位小数 http://meryvn.blog.163.com/blog/static/36962664201173010402629/ 两种方法: import   j ...

  3. JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...

  4. matlab中fseek 移至文件中的指定位置

    文章来源:https://ww2.mathworks.cn/help/matlab/ref/fseek.html?searchHighlight=fseek&s_tid=doc_srchtit ...

  5. 64位matlab中libsvm的安装

    因为windows版的matlab对编译器的识别不好.所以直接在网上下了已经编译好的libsvm文件放入toolbox文件夹就可以用libsvm了 libsvm已编译好的文件下载地址: 猛戳我下载 1 ...

  6. Matlab中的一些小技巧

    (转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...

  7. MATLAB中的函数的归总

    字符串操作函数 1.        函数eval可以用来执行用字符串表示的表达式 2.        函数deblank可以去掉字符串末尾的所有空格 3.        函数findstr可以用来在长 ...

  8. matlab中imread 从图形文件读取图像

    来源:https://ww2.mathworks.cn/help/matlab/ref/imread.html?searchHighlight=imread&s_tid=doc_srchtit ...

  9. matlab中upper 将字符串转换为大写

    参考:https://ww2.mathworks.cn/help/matlab/ref/fprintf.html?searchHighlight=fprintf&s_tid=doc_srcht ...

随机推荐

  1. 攻防世界——Misc新手练习区解题总结<2>(5-8题)

    第五题gif: 下载附件后,解压得到这样一个文件 几经寻找无果后,发现是不是可以将gif中的黑白图片看做二进制的数字,进而进行解密 最后用二进制转文本得到flag 第六题掀桌子: 看起来是16进制的密 ...

  2. 总结回顾js arr的常见方法以及相关的使用场景(一)

    Array对象方法 1.arr.concat() 连接两个或更多的数组,并返回结果. 连接数组中的值 连接两个数组 连接三个数组 2.arr.join() 把数组的所有元素放入一个字符串.元素通过指定 ...

  3. 在CG/HLSL中访问着色器的内容

    着色器在Properties代码块中声明 材质球的各种特性.如果你想要在着色器程序中使用这些特性,你需要在CG/HLSL中声明一个变量,这个变量需要与你要使用的特性拥有同样的名字和对的上号的类型.比如 ...

  4. Go测试开发(一) 怎么写Go代码

    安装过程略过,网上搜一大把. 介绍 本文会在一个module中开发一个简单的Go package. 同时介绍go tool(也就是go命令行). 以及如何fetch,build和install Go的 ...

  5. HashMap位运算你可知一二

    前置位运算知识 我们平时在写代码过程中用的位运算操作比较少,因为我们更关注于可读性而不是性能,如果为了性能而使用较多的位运算,我想我们的同事会疯掉.但在框架里位运算却非常常见,因为框架的性能是我们关注 ...

  6. The Unique MST(最小生成树的唯一性判断)

    Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...

  7. 分数运算(gcd)

    时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 计算机中采用浮点数表示所有实数,但这意味着精度丢失.例如无法精确 ...

  8. leetcode刷题-64最小路径和

    题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入:[  [1,3,1],  [1,5, ...

  9. opentracting+jager分布式链路追踪探索实践

    一.Opentracing opentracing通过提供平台无关.厂商无关的API,使得开发人员可以方便地实现追踪系统.opentracing提供了用于运营支撑系统和针对特定平台的辅助程序库,被跟踪 ...

  10. IDEA左侧文件目录不见了,帮你找回来!

    前几天不知道什么操作,把IDEA左侧项目的目录给弄没了,如下图,在百度上搜索了不少,就是没有效果,很是头疼,巧的是,今天琢磨了一下,又给弄回来了,所以在此记录一下,以后再给弄没了,就知道了,同时也算是 ...