主要内容

比特

换档位指定的位置数量

描述

例子

intout=比特(一种K.的)回报一种向左移动了K.比特,相当于乘以2K.。负值K.对应于向右移动位或除以2| k |并四舍五入到最接近的整数到负无穷大。任何溢出位都被截断。

  • 如果一种是一系列签名整数,然后比特返回算术转移结果,保留符号位时K.是消极的,而不是保留符号位K.是积极的。

  • 如果K.是积极的,matlab®将位移到左侧并插入K.右边的0位。

  • 如果K.是负的,一种是非负的,然后MATLAB将位向右平移并插入|K.|左边是0位。

  • 如果K.是负的,一种是消极的,然后matlab将位移到右侧和插入|K.|左边的1位。

例子

intout=比特(一种K.假设τe.的)假设一种是类型假设τe.

例子

全部收缩

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

a = intmax('uint8');s1 ='初始的uint8值%5d是%08s在二进制\n';s2 ='移位uint8值%5d为binary \ n'中的%08s;流(s1, dec2bin (a))
初始的uint8值255是二进制的11111111
为了I = 1:8 a = bitshift(a,1);流(s2, dec2bin (a))结尾
转移uint8价值254是11111110的二进制uint8转移价值252是11111100的二进制移uint8价值248是11111000的二进制uint8转移价值240是11110000的二进制移uint8价值224是11100000的二进制uint8转移价值192是11000000的二进制移uint8价值128是10000000的二进制0是uint8转移价值00000000的二进制

使用不同假定的整数类型查找一个数字的班次。

uintout = bitshift(6,5:7,'uint8'的)
uintout =1×3192 128 0
Intout = Bitshift(6,5:7,“int8”的)
intout =1×3-64 -128 0

使用拜托比特将四个8位字节包装到它们组成的32位整数中。

创建四个字节的数据。属性指定具有十六进制字面值的数据-u32后缀指定数据应存储为UINT32.。每个字节包含8位数据。

byte4 = 0 x87u32;byte3 = 0 x65u32;byte2 = 0 x43u32;byte1 = 0 x21u32;

首先将第一个字节添加为32位无符号整数的前8位。

packedNum = byte1;

接下来,将其他三个字节包装到packednum., 使用比特将字节移到适当的位置,并且拜托复制位。

packednum = bitor(packednum,bitshift(byte2,8));packednum = bitor(packednum,bittehift(byte3,8 * 2));packednum = bitor(packednum,bitshift(byte4,8 * 3));

查看Packed 32位整数。

格式十六进制packednum.
packedNum =UINT32.87654321

输入参数

全部收缩

输入值,指定为数组。一种可以是标量或相同尺寸的数组K.

  • 如果一种是一个双数组,和假设τe.未指定,然后matlab对待一种作为无符号64位整数。

  • 如果假设τe.,则一种必须在范围内具有整数值假设τe.

数据类型:双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32.|UINT64

交换位的数目,指定为整数或整数数组。K.可以是标量或相同尺寸的数组一种

数据类型:双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32.|UINT64

假设数据类型一种,指定为'uint64'“uint32”'uint16''uint8''int64''int32'“int16”, 或者“int8”

  • 如果一种是一个整数类型数组,然后假设τe.必须指定相同的整数类型。

  • 如果一种然后是一个双数组假设τe.可以指定任何有效的整数类型。

数据类型:字符|细绳

输出参数

全部收缩

移位值,作为数组返回。intout是与之相同的数据类型一种

  • 如果一种K.是标量,那么intout也是一个标量。

  • 如果任何一一种K.是一个数组,然后是intout与该阵列相同。

扩展能力

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

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

之前介绍过的R2006a