Octave提供了许多函数,用于按位操作数值。设置和获取单个位值的基本函数如下位组
和比特
.
B =
bitset (A, n)
¶B =
bitset (A, n, val)
¶在位置设置或重置位n中的无符号整数的A.
最低有效位为n1.val= 0重置位和val1.设置位。如果没有val如果指定,则默认为1(设置位)。所有输入必须具有相同的大小或标量。
示例1:设置多个位
x=位集(1,3:5)⇒ x=5 9 12月17日(x)⇒ 00101 01001 10001
示例2:重置和设置位
x=位集([15 14],1,[0 1])⇒ x=14 15
b =
bitget (A, n)
¶返回位置处的位值n中的无符号整数的A.
最低有效位为n1.
bitget(100,8:-1:1)⇒ 0 1 1 0 0 1 0 0
Octave的所有位运算的参数都可以是标量或数组,除了bitcmp
谁的k参数必须上升。在多个参数是数组的情况下,所有参数都必须具有相同的形状,并且按位运算符分别应用于参数的每个元素。如果至少有一个参数是标量,一个是数组,则标量参数是重复的。因此
bitget(100,8:-1:1)
与相同
bitget(100*ones(1,8),8:-1:1)
需要注意的是,传递给Octave的位操作函数的所有值都被视为整数。因此,即使的示例位组
以上通过浮点值10
,它被视为位[1, 0, 1, 0]
而不是的本机浮点格式表示的比特10
.
从于可以用数字表示的最大值对于位操作很重要,特别是在形成掩码时,Octave提供了两个实用函数:燧石
对于浮点整数,以及intmax
对于整数对象(uint8
, int64
等
Octave还包括基本的按位运算符“and”、“or”和“exclusive or”。
z =
bitand (x, y)
¶返回非负整数的按位AND。
x, y必须在[0,intmax]范围内
按位“not”运算符是一元运算符,用于对值的每个位执行逻辑负性。为了使其有意义,必须定义对其求反值的掩码。Octave的“按位”not“运算符是bitcmp
.
C =
bitcmp (A, k)
¶返回k-中整数的位补码A.
如果k被省略k=log2(flintmax)+1
是假定的。
位cmp(7,4)⇒ 8dec2英寸(11)⇒ 1011dec2bin(位cmp(11,6))⇒ 110100
Octave还包括按位左移和右移值的能力。
B =
bitshift (A, k)
¶B =
bitshift (A, k, n)
¶返回ak的位偏移n-中的数字无符号整数A.
一个积极的k导致左移;右移的负值。
如果n则默认为64。n必须在[1,64]的范围内。
位移(眼(3),1)⇒
2 0 00 2 00 0 2
位移(10,[-2,-1,0,1,2])⇒ 2 5 10 20 40
从值的任一端移出的位将丢失。Octaveaso还使用算术移位,其中值的符号位在右移期间为kept。例如
位移(-10,-1)⇒ -5位移位(int8(-1),-1)⇒ -1.
请注意位移(int8(-1),-1)
是-1
从于的位表示-1
在中int8
数据类型为[1, 1,1, 1, 1, 1, 1, 1]
.
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号