SMELUKOV_DEV Telegram 83
Читатели задают вопросы о том, что делает ~~(number / 10). Давайте разбираться, ведь одна из целей разборов этих задач - узнать что-то новое.

Оператор ~ - это "побитовое НЕ", он инвертирует биты числа на противоположные: 10101 -> 01010.

Итак, зачем это всё? Дело в том, что побитовые операции можно производить только с целыми числами, поэтому при попытка применить побитовые операции к числу с плавающей точкой, дробная часть будет отброшена и это дешевле нежели использовать Math.floor и т.п.

Тут встает вопрос в том, какой побитовый оператор использовать, ведь каждый их них как-то модифицирует число. То есть применив побитовый оператор, мы так или иначе модифицируем число, а значит нам нужно применить такой оператор, чтобы биты числа можно было восстановить в их изначальный вид. Таким оператор как раз является ~:

10101 -> 01010

А теперь, если мы снова применим этот оператор к получившемуся числу, то получим изначальный порядок бит:

01010 -> 10101

Таким образом мы очень дешево избавились от дробной части при помощи битовых операций, не повредив само число.



tgoop.com/smelukov_dev/83
Create:
Last Update:

Читатели задают вопросы о том, что делает ~~(number / 10). Давайте разбираться, ведь одна из целей разборов этих задач - узнать что-то новое.

Оператор ~ - это "побитовое НЕ", он инвертирует биты числа на противоположные: 10101 -> 01010.

Итак, зачем это всё? Дело в том, что побитовые операции можно производить только с целыми числами, поэтому при попытка применить побитовые операции к числу с плавающей точкой, дробная часть будет отброшена и это дешевле нежели использовать Math.floor и т.п.

Тут встает вопрос в том, какой побитовый оператор использовать, ведь каждый их них как-то модифицирует число. То есть применив побитовый оператор, мы так или иначе модифицируем число, а значит нам нужно применить такой оператор, чтобы биты числа можно было восстановить в их изначальный вид. Таким оператор как раз является ~:

10101 -> 01010

А теперь, если мы снова применим этот оператор к получившемуся числу, то получим изначальный порядок бит:

01010 -> 10101

Таким образом мы очень дешево избавились от дробной части при помощи битовых операций, не повредив само число.

BY Сергей Мелюков


Share with your friend now:
tgoop.com/smelukov_dev/83

View MORE
Open in Telegram


Telegram News

Date: |

End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.” The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings. Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram.
from us


Telegram Сергей Мелюков
FROM American