在 Ruby 中,位运算符主要是用于数值类型的二进制的运算。
运算符 | 说明 | 范例 |
---|---|---|
& | 按位与 | A & B |
| | 按位或 | A | B |
^ | 按位异或 | A ^ B |
~ | 按位取反 | ~A |
<< | 左移运算符 | A << 2 |
>> |
右移运算符 | A >> 2 |
<<
左边的运算数的各二进制位全部左移若干位,高位丢弃,低位补 0。<<
左边的运算数的各二进制位全部右移若干位。使用 & 运算符,实现按位与运算
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 111
b = 222
c = a & b
printf("c = %d\n", c)
程序运行后,控制台输出如下:
首先,我们定义了两个变量,a 和 b。 接着,我们使用按位与运算符 &,将变量 a 的值与变量 b 的值进行相与运算,并将运算结果赋值给 c。
使用 | 运算符,实现按位或运算
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 111
b = 222
c = a | b
printf("c = %d\n", c)
程序运行后,控制台输出如下:
首先,我们定义了两个变量,a 和 b。 接着,我们使用按位或运算符 |,将变量 a 的值与变量 b 的值进行相或运算,并将运算结果赋值给 c。
使用 ^ 运算符,实现按位异或运算
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 111
b = 222
c = a ^ b
printf("c = %d\n", c)
程序运行后,控制台输出如下:
首先,我们定义了两个变量,a 和 b。 接着,我们使用按位异或运算符 ^,将变量 a 的值与变量 b 的值进行相异或运算,并将运算结果赋值给 c。
使用 ~ 运算符,实现按位取反运算
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 111
b = ~a
printf("b = %d\n", b)
程序运行后,控制台输出如下:
我们定义了变量 a 并且使用了取反运算符 ~,将变量 a 的取反后的结果赋值给了变量 b。
在 Ruby 中,位运算符主要是用于数值类型的二进制的运算。按位与的运算规则是,如果两数对应的二进制位都为 1,那么结果为 1, 否则结果为 0。
按位或的运算规则是如果两数对应的二进制位有一个为 1,那么结果为 1, 否则结果为 0。按位异或的运算规则是如果两数对应的二进制位不同,那么结果为 1, 否则结果为 0。