TypeScript - 位运算符示例


假设变量 A = 2 且 B = 3

运算符 描述 示例
& (按位与) 它对其整数参数的每一位执行布尔 AND 运算。 (A & B) 为 2
| (按位或) 它对其整数参数的每一位执行布尔或运算。 (A | B) 为 3
^ (按位异或) 它对其整数参数的每一位执行布尔异或运算。 异或意味着操作数一为真或操作数二为真,但不能两者都为真。 (A ^ B) 为 1
~ (按位非) 它是一个一元运算符,通过反转操作数中的所有位进行运算。 (~B) 为 -4
<< (左移) 它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。 新的位用零填充。 将值左移一位相当于乘以 2,左移两位相当于乘以 4,依此类推。 (A << 1) 为 4
>> (右移) 二进制右移运算符。 左操作数的值向右移动右操作数指定的位数。 (A >> 1) 为 1
>>> (右移为零) 此运算符就像 >> 运算符,但左侧移入的位始终为零。 (A >>> 1) 为 1

示例

var a:number = 2;   // Bit presentation 10 
var b:number = 3;   // Bit presentation 11
 
var result; 
     
result = (a & b);     
console.log("(a & b) => ",result)
          
result = (a | b);          
console.log("(a | b) => ",result)  
       
result = (a ^ b);  
console.log("(a ^ b) => ",result);
 
result = (~b); 
console.log("(~b) => ",result);

result = (a << b); 
console.log("(a << b) => ",result); 

result = (a >> b); 
console.log("(a >> b) => ",result);

编译时,它将生成以下 JavaScript 代码 −

//Generated by typescript 1.8.10
var a = 2;   // Bit presentation 10
var b = 3;   // Bit presentation 11
var result;

result = (a & b);
console.log("(a & b) => ", result);

result = (a | b);
console.log("(a | b) => ", result);

result = (a ^ b);
console.log("(a ^ b) => ", result);

result = (~b);
console.log("(~b) => ", result);

result = (a << b);
console.log("(a << b) => ", result);

result = (a >> b);
console.log("(a >> b) => ", result);

上述程序的输出如下 −

(a & b) =>  2 
(a | b) =>  3 
(a ^ b) =>  1 
(~b) =>  -4 
(a << b) =>  16 
(a >> b) =>  0

typescript_operators.html