文档帮助中心文档
将位移到指定的位置
intout = bitshift (k)
Intout = Bitshift(A,K,AssumedType)
例子
intout.= bitshift (一个,k)返回一个转移到左边k比特,相当于乘以2k.负的k对应于换档或划分2k | |四舍五入到接近负无穷的整数。任何溢出位都将被截断。
intout.= bitshift (一个,k)
intout.
一个
k
k | |
如果一个是一个有符号整数的数组吗bitshift返回算术移位结果,保留符号位k是负的,什么时候不保留符号位k是正的。
bitshift
如果kMATLAB是正的,®将位移到左边并插入k右边0位。
如果k是消极的一个是非负的,然后Matlab将位移到右侧并插入|k|左边的0位。
|
如果k是消极的一个是负数,然后MATLAB将位向右移动并插入|k|左边是1位。
intout.= bitshift (一个,k,assumedtype)假设一个的类型是assumedtype.
intout.= bitshift (一个,k,assumedtype)
assumedtype
全部折叠
反复将无符号8位值的位向左移动,直到所有非零位溢出。
一个= intmax (“uint8”);S1 ='初始uint8值%5d为binary \ n'中的%08s;S2 =移位的uint8值%5d是%08s的二进制\n';流(s1, dec2bin (a))
初始UINT8值255是二进制中的11111111
为i = 1:8 a =比特(a,1);FPRINTF(S2,A,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、7、“uint8”)
uintout =1×3192 128 0.
intout = bitshift(6、7、'int8')
Intout =.1×3-64 -128 0
用bitor和bitshift将四个8位字节打包成它们组成的32位整数。
bitor
创建四个字节的数据。使用十六进制文字指定数据,使用该数据-u32后缀指定数据应该存储为uint32.每个字节包含8位的数据。
-u32
uint32
byte4 = 0x87u32;byte3 = 0x65u32;byte2 = 0x43u32;byte1 = 0x21u32;
首先将第一个字节添加为32位无符号整数的前8位。
packednum = byte1;
接下来,将其他三个字节打包到packedNum,使用bitshift将字节转移到适当的位置,bitor复制位。
packedNum
packedNum = bitor (packedNum bitshift (byte2 8));packedNum = bitor (packedNum bitshift (byte3 8 * 2));packedNum = bitor (packedNum bitshift (byte4 8 * 3));
查看打包的32位整数。
格式十六进制packedNum
packednum =.uint3287654321
输入值,指定为数组。一个可以是一个标量或相同大小的数组k.
如果一个是双数组,和assumedtype,那么MATLAB处理一个作为无符号64位整数。
如果assumedtype指定,然后是所有元素一个范围内必须有整数值assumedtype.
数据类型:双|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64
双
int8
int16
INT32.
int64
uint8
uint16
uint64
切换位数,指定为整数或整数数组。k可以是一个标量或相同大小的数组一个.
“uint64”
'uint32'
“uint16”
“uint8”
“int64”
“int32”
'int16'
'int8'
假设的数据类型一个,指定为“uint64”,'uint32',“uint16”,“uint8”,“int64”,“int32”,'int16',或'int8'.
如果一个是整型数组吗assumedtype必须指定相同的整数类型。
如果一个是双数组吗assumedtype可以指定任何有效的整数类型。
数据类型:char|字符串
char
字符串
移位值,作为数组返回。intout.是相同的数据类型一个.
如果一个和k是标量,那么intout.也是一个标量。
如果任何一一个或者k是数组吗intout.与数组大小相同。
要高效地生成HDL代码,请使用定点设计器™函数bitsll,bitsrl,或bitsra而不是bitshift.
bitsll
bitsrl
bitsra
用法说明和限制:
至少有一个输入,一个或者k,必须为整数数组。
输入一个不能是有符号整数数组。
不支持64位整数。金宝app
的assumedtype不支持参数。金宝app
有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
bitand|bitcmp|bitget|bitor|bitset|bitxor|intmax
bitand
bitcmp
bitget
bitset
bitxor
intmax
您有这个示例的一个修改版本。要用编辑打开这个例子吗?
您点击了一个对应于这个MATLAB命令的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站来获得可用的翻译内容,并看到当地的活动和提供。根据您所在的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。
与当地办事处联系