C Operations
Relations
- == 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
- != 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
- > 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
- < 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
- >= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
- <= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。
Logic Operations
- && 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
- || 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
- ! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。
console.log(a > 0 && b > 0);
// expected output: false
console.log(a > 0 || b > 0);
// expected output: true
console.log(!(a > 0 || b > 0));
// expected output: false
Bit Opeartions
- & 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
- | 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
- ^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
- ~ 二进制补码运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0。 (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。
- << 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
- >> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111
Assignment Operations
- = 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
- += 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
- -= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
- *= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
- /= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
- %= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
- <<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2
- >>= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
- &= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
- ^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
- |= 按位或且赋值运算符 C |= 2 等同于 C = C | 2
MISC
- sizeof() 返回变量的大小。 sizeof(a) 将返回 4,其中 a 是整数。
- & 返回变量的地址。 &a; 将给出变量的实际地址。
- * 指向一个变量。 *a; 将指向一个变量。
- ? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y