HarmonyOS 鸿蒙Next复合赋值运算符中的:<<=、>>=、>>>=、&=、|=、^=代表什么意思?

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next复合赋值运算符中的:<<=、>>=、>>>=、&=、|=、^=代表什么意思?

今天在文档中看到几个特殊的运算符,请问分别代表什么意思?

cke_1317.png



关于HarmonyOS 鸿蒙Next复合赋值运算符中的:<<=、>>=、>>>=、&=、|=、^=代表什么意思?的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

2 回复

你好,鸿蒙开发者同僚

关于你提到的复合赋值表达式,在编程语言中,是一种简化赋值操作的语法。以下是你提到的6个复合赋值运算符的含义和示例:

1. <<=(左移赋值):将左边变量的值向左移动指定的位数,然后将结果赋值给左边的变量。

   示例:`x <<= 2;` 等价于 `x = x << 2;`

2. >>=(右移赋值):将左边变量的值向右移动指定的位数,然后将结果赋值给左边的变量。

   示例:`x >>= 2;` 等价于 `x = x >> 2;`

3. >>>=(无符号右移赋值):将左边变量的值进行无符号右移指定的位数,然后将结果赋值给左边的变量。无符号右移操作符会将负数的二进制表示当作正数处理。

   示例:`x >>>= 2;` 等价于 `x = x >>> 2;`

4. &=(按位与赋值):将左边变量的值与右边变量的值进行按位与操作,然后将结果赋值给左边的变量。

   示例:`x &= 2;` 等价于 `x = x & 2;`

5. |=(按位或赋值):将左边变量的值与右边变量的值进行按位或操作,然后将结果赋值给左边的变量。

   示例:`x |= 2;` 等价于 `x = x | 2;`

6. ^=(按位异或赋值):将左边变量的值与右边变量的值进行按位异或操作,然后将结果赋值给左边的变量。

   示例:`x ^= 2;` 等价于 `x = x ^ 2;`

俺基本上用不到:

举例:

右移并赋值运算符

 10 >>= 3 等于 10 // 2^3 = 10 // 8 = 1(这里的 // 表示整数除法)<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

 左移并赋值运算符

 10 <<= 5 等于 10 * 2^5 = 320<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

 按位与并赋值运算符

10 &= 5 等于 10100101 按位与操作的结果是0000,转换为十进制为 0
所以 10 &= 5的结果为0<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
10 &= 2 等于10100010 按位与操作的结果是 0010,转换为十进制为 2
所以 10 &= 2 的结果为2<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

 按位或并赋值运算符

10 |= 3 等于10100011 按位或操作的结果是 1011,转换为十进制为 11
所以10 |= 3的结果为11<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

 按位异或并赋值运算符

10 ^= 6 等于10100110 按位异或的规则是:相同位为 `0`,不同位为 `1`
1100 的二进制表示转换为十进制为 12
所以10 ^= 6 的值为12<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

 

回到顶部