Битовые операции имеют множество применений. Криптография, компьютерная графика, хэш-функции, цифровая обработка изображений, алгоритмы сжатия и сетевые протоколы — вот лишь некоторые примеры, где такие операции чрезвычайно полезны.

В блоге студии web-разработки YuSMP Group рассмотрели несколько приемов по манипулированию битами.

Приемы с битовыми операциями

Бит — это наименьшая единица данных или информации. Бит имеет единственное двоичное значение либо 0, либо 1. Манипуляции с битами — это метод применения логических операций к последовательности битов для достижения требуемого результата.

Использование побитовых операторов в соревновательном программировании может помочь ускорить код. Битовые манипуляции имеют постоянную временную сложность.

Вычисления, выполняемые непосредственно над битами, выполняются довольно быстро, что повышает производительность системы.

Для нахождения частного и остатка (C++ )

В этом примере вы научитесь находить частное и остаток от деления С++.


#include <iostream>
using namespace std;

int main()
{    
    int divisor, dividend, quotient, remainder;

    cout << "Enter dividend: ";
    cin >> dividend;

    cout << "Enter divisor: ";
    cin >> divisor;

    quotient = dividend / divisor;
    remainder = dividend % divisor;

    cout << "Quotient = " << quotient << endl;
    cout << "Remainder = " << remainder;

    return 0;
}

Чтобы вычислить частное и остаток, делитель и делимое должны быть целыми числами.

Оператор вычисляет частное (между вещественными или целочисленными переменными).

Оператор модуля % вычисляет остаток при делении одного целого числа на другое (нельзя использовать для переменных с плавающей запятой).

Найти остаток от деления (js)

Оператор ( %) возвращает javascript остаток от деления и всегда принимает знак делимого.

Описание

Для операции n % d, n называется делимым и называется делителем. Операция возвращает значение NaN, если один из операндов равен NaN, n равен ± бесконечности или d равен ± 0. В противном случае, если d± бесконечность или n± 0, n возвращается.

Когда оба операнда не равны нулю и конечны, остаток r вычисляется как r := n - d * q где q целое число, r имеющее тот же знак, что и n, но максимально близкое к 0.

Примеры
С положительным дивидендом
13 % 5; // 3
1 % -2; // 1
1 % 2; // 1
2 % 3; // 2
5.5 % 2; // 1.5

С отрицательным дивидендом
-13 % 5; // -3
-1 % 2;  // -1
-4 % 2;  // -0

С NaN
NaN % 2; // NaN

С бесконечностью
Infinity % 2; // NaN
Infinity % 0; // NaN
Infinity % Infinity; // NaN
2 % Infinity; // 2
0 % Infinity; // 0

Целочисленное деление в JavaScript

В JavaScript есть всемогущий Math Объект, предоставляющий массу математических функций, от констант до функций. Важно отметить, что объект Math не работает с BigInt. Внутри Math Объекта находятся статические свойства и методы, обеспечивающие математические функции. Похожий объект есть и в другом языке: Math.Abs() возвращает в C# модуль числа.

Одним из статических методов является floor метод, округляющий Number Аргумент типа в меньшую сторону. Таким образом, для достижения в JS целочисленного деления мы можем выполнить типичное действие и округлить ответ (число с плавающей запятой) в меньшую сторону, используя метод, чтобы получить результат.

const y = 34;
const x = 12;
const quotient = Math.floor(y / x);
console.log(quotient);

Деление без остатка в Python

Используйте оператор floor//, чтобы произвести в Python деление без остатка.

Floor всегда возвращает целое число и похож на использование математического деления с floor() функцией, примененной к результату.

Используется floor, чтобы вернуть целое число из целочисленного деления.Результатом использования оператора является математическое деление с floor() применением к результату функции.

Возведение в степень (**)

Оператор возведения в степень js ( **) возвращает результат возведения первого операнда в степень второго операнда.

Оператор возведения в степень право ассоциативен: a ** b ** cравен a ** (b ** c). В Python степень (оператор возведения) определяется как имеющий более высокий приоритет, то же самое происходит и в других языках (например, PHP).

В JavaScript невозможно написать неоднозначное выражение возведения в степень. Например, -2 ** 2 в Bash это 4, а в других языках (таких как Python) — -4. Это недопустимо в JavaScript, так как операция неоднозначна. Вы должны заключить обе стороны в скобки — например, as -(2 ** 2)— чтобы сделать намерение недвусмысленным.

Обратите внимание, что некоторые языки программирования используют символ вставки ^ для перемножения степеней, но JavaScript использует этот символ для побитового логического оператора XOR .

Пример

Основное возведение в степень
2 ** 3; // 8
3 ** 2; // 9
3 ** 2.5; // 15.588457268119896
10 ** -1; // 0.1

Веб-услуги и разработка в YuSMP Group включает в себя большой спектр работ по программированию. Наши специалисты владеют актуальными технологиями и сильными навыками, чтобы создавать качественные продукты. Посмотрите проекты, которые мы создали, чтобы убедиться в высоком уровне команды.