freeCodeCamp/guide/chinese/miscellaneous/bitwise-operators/index.md

47 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Bitwise Operators
localeTitle: 按位运算符
---
`<<` `>>` `&` `|` `~`和`^`是按位运算符,它们在各个位的级别上对一个或多个位模式或二进制数字进行操作。
## AND运算符
`x & y`
是“按位和”。如果y的x AND的相应位为1则输出的每个位为1否则为0。
## OR运算符
`x | y`
是“按位还是”。如果y的x AND的相应位为0则输出的每个位为0否则为1。
## 补充运算符
`~ x`
返回x的补码 - 通过将每个1切换为0并将每个0切换为1得到的数字。这与-x - 1相同。
## XOR运算符
`x ^ y`
是“按位排他性”还是“。如果y中的该位为0则输出的每个位与x中的相应位相同如果y中的该位为1则它是x中位的补码。
## 算术移位左操作员
`x << y`
返回x其中位向左移位y位右侧的新位为零。这与将x乘以2 \*\* y相同保留数字的符号。当你使用count> = sizeoftype进行移位时大多数编译器都会发出警告。当你这样做时你通常会得到一个0。
## 算术右移算子
`x >> y`
返回x位向右偏移y位。这与将x除以2 \*\* y作为无符号整数相同。负签名号的右移具有实现定义的行为。当你使用count> = sizeoftype进行移位时大多数编译器都会发出警告。向右移位可以用原始最高有效位填充“空”位即执行符号扩展或者它可以以零移位具体取决于平台和/或编译器。
## 逻辑右移算子
`x >>> y`
返回x位向右偏移y位。与算术移位不同逻辑移位不会预先设置符号。例如以8位表示的-2将是11111110因为最高有效位具有负权重。使用算术移位将其向右移一位会给你11111111或-1。然而逻辑右移并不关心价值可能代表一个数字;它只是将所有内容移动到右侧并从左侧填充0。使用逻辑移位将我们的-2右移一位将给出01111111。此运算符不一定存在于所有语言中。