matlab 左移右移,[原创]Matlab 之按位操作

在硬件语言 Verilog 中按位操作是相对容易的,在C语言中一样的用好逻辑符号 “|”、“!”、“&”、“>>” 等即可。但是在 Matlab 中一些类似的操作是判断或者逻辑用法,不能用在按位操作上。那么在其中就需要用到函数来进行操作了。

在此记录两种按位操作的方法:按位左右移 bitshift,按位与 bitand。

按位左右移 bitshift

C = bitshift(A,K) returns the value of A shifted to the left by K bits,

where A is a signed or unsigned integer array. Shifting by K bits

is the same as multiplication by 2^K. Negative values of K are allowed

and this corresponds to shifting to the right, or dividing by 2^ABS(K)

and rounding to the nearest integer towards negative infinity. If the

shift causes C to overflow the number of bits in the integer class of A,

then the overflowing bits are dropped.

If A is a double array, then all elements must be non-negative integers

less than or equal to intmax('uint64'), and bitshift

drops any bits overflowing 64 bits.

其中K为正表示向左移,K 为负值表示向右移;示例如下有:

>> bitshift(5,1)

ans =

10

>> bitshift(5,-1)

ans =

2

按位与 bitand

C = bitand(A,B) returns the bitwise AND of arguments A and B,

where A and B are signed or unsigned integer arrays. If A and B are

double arrays, then they must contain non-negative integer elements

less than or equal to intmax('uint64').

两个简单的示例如下:

>> bitand(5,4)

ans =

4

>> bitand(5,15)

ans =

5

其他还有一些按位操作的函数,可以参考如下。

See also

*bitor*, *bitxor*, *bitcmp*, *bitshift*, *bitset*, *bitget*, *intmax*.

标签:位操作,原创,bitshift,bitand,按位,Matlab,integer,bits

来源: https://www.cnblogs.com/airbird/p/11455187.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值