Рубиновые побитовые операторы
Битовые операторы
В Ruby побитовые операторы позволяют оперировать побитовым представлением своих аргументов.
Что немного?
Бит ( B inary dig IT ) - это базовая единица информации, хранящаяся в вычислительной системе, которая существует в двух возможных состояниях, представленных как ВКЛ или ВЫКЛ. В компьютерной системе состояние ВКЛ, рассматриваемое как 1, и состояние ВЫКЛ, рассматриваемое как 0. Эти состояния можно сравнить с двумя состояниями триггера, двумя состояниями электрического переключателя и т . Эти два значения 0 и 1 называются двоичной цифрой, и эти цифры находятся в конкретной системе счисления, то есть двоичной системе счисления, которая строится на основе 2.
В десятичной системе счисления число строится на основе числа 10. Посмотрим, как можно построить десятичное число:
231 = (2 x 10 2 ) + (3 x 10 1 ) + (1 x 10 0 )
= 200 + 30 + 1
= 231
Система двоичных чисел также следует той же концепции. Единственная разница в том, что основание равно 2 вместо 10. Давайте посмотрим, как двоичное число можно преобразовать в десятичное число -
1011010 = (1 x 2 6 ) + (0 x 2 5 ) + (1 x 2 4 ) + (1 x 2 3 ) + (0 x 2 2 ) + (1 x 2 1 ) + (0 x 2 0 )
= (1 x 64) + (0 x 32) + (1 x 16) + (1 x 8) + (0 x 4) + (1 x 2) + (0 x 1)
= 64 + 0 + 16 + 8 + 0 + 2 + 0
= 90
Итак, (1011010) 2 = (90) 10 байт
Байт состоит из последовательности битов. Байт состоит из восьми битов. Максимальное значение байта составляет 255, поэтому устанавливается значение места каждого бита.
Табличное представление байта1 байт (8 бит) | ||||||||
---|---|---|---|---|---|---|---|---|
восьмых | седьмые | шестые | пятые | четвёртая | третий | второй | первый | |
Стоимость места | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Вот табличное представление байта, показывающее, как максимальное значение байта составляет 255
1 байт (8 бит) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Стоимость места | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||
2 7 | 2 6 | 2 5 | 2 4 | 2 3 | 2 2 | 2 1 | 2 0 | |||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | знак равно | 255 |
Десятичное число 93 может быть представлено в двоичной форме, как показано ниже:
1 байт (8 бит) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Стоимость места | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ||
0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | |||
2 7 | 2 6 | 2 5 | 2 4 | 2 3 | 2 2 | 2 1 | 2 0 | |||
0 | 64 | 0 | 16 | 8 | 4 | 0 | 1 | знак равно | 93 |
Следующие побитовые операторы, поддерживаемые языком Ruby
оператор | название | пример | Результат |
---|---|---|---|
& | А также | х & у | Биты, которые установлены как в x, так и в y, установлены. |
| | Или же | х | Y | Биты, которые установлены в x или y, установлены. |
^ | Xor | х ^ у | Биты, которые установлены в x или y, но не оба установлены. |
~ | Не | ~ х | Биты, которые установлены в x, не установлены, и наоборот. |
<< | Сдвиг влево | х << у | Сдвиньте биты шагов x, y влево. # |
>> | Сдвиг вправо | х >> у | Сдвиньте биты шагов x, y вправо. * |
# Каждый шаг означает «умножить на два»
* Каждый шаг означает «разделить на два»
Пример: Рубиновый побитовый оператор
puts ("bitwise operators in Ruby")
a = 58 # 00111010
b = 34 # 00100010
puts ("Binary AND Operator")
puts (a&b)
puts ("Binary OR Operator")
puts (a|b)
puts ("Binary OR Operator")
puts (a^b)
puts ("Binary Ones Complement Operator")
puts (~a)
puts ("Binary Left Shift Operator")
puts (a<<4)
puts ("Binary Right Shift Operator")
puts (a>>4)
Выход:
побитовые операторы в Ruby Бинарный И Оператор 34 Бинарный ИЛИ Оператор 58 Бинарный ИЛИ Оператор 24 Оператор дополнения двоичных единиц -59 Двоичный оператор левого сдвига 928 Оператор двоичного правого сдвига 3
Предыдущий: Ruby Parallel Assignment
Далее: Рубиновые логические операторы
Новый контент: Composer: менеджер зависимостей для PHP , R программирования