来源:https://ww2.mathworks.cn/help/matlab/ref/bitshift.html?searchHighlight=bitshift&s_tid=doc_srchtitle
itshift
说明
示例
intout
= bitshift(A
,k
)
返回向左偏移 k
位的 A
,这等效于乘以 2k
。k
的负值与向右移位或除以 2|k|
并向负无穷舍入到最接近的整数相对应。将截断任何溢出位。
-
如果 A
是有符号的整数数组,则 bitshift
返回算数偏移结果,并在 k
为负时保留有符号的位,k
为正时不保留有符号的位。
-
如果 k
为正,MATLAB® 将位左移,并在右侧插入 k
0 位。
-
如果 k
为负,并且 A
为非负,MATLAB 将位右移,并在左侧插入 |
k
|
0 位。
-
如果 k
为负,并且 A
为负,MATLAB 将位右移,并在左侧插入 |
k
|
1 位。
示例
全部折叠
偏移的 8 位整数
反复将无符号的 8 位值的位左移,直到所有非零位溢出为止。
Initial uint8 value 255 is 11111111 in binary
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
输入参数
全部折叠
A
- 输入值
数组
输入值,指定为数组。A
可以是标量或与 k
大小相同的数组。
数据类型: 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'
。
数据类型: char
| string
输出参数
全部折叠
intout
- 移位后的值
数组
移位后的值,以数组形式返回。intout
的数据类型与 A
相同。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
-
至少有一个输入(A
或 k
)必须是整数数组。
-
输入 A
不能是有符号整数数组。
-
不支持 64 位整数。
-
不支持 assumedtype
参数。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
在 R2006a 之前推出