Двоичный код — это система представления информации или данных с использованием системы счисления с основанием 2. Для представления всех значений используются только две цифры, обычно 0 и 1. Каждая цифра в двоичном коде называется битом (сокращение от двоичной цифры).
В двоичном коде каждая цифра представляет степень 2. Начиная с самой правой цифры, степени 2 увеличиваются справа налево. Например, в 8-битном двоичном коде самый правый бит представляет 2^0 (1), следующий бит представляет 2^1 (2), следующий бит представляет 2^2 (4) и так далее.
Возьмем десятичное число 42 и представим его в двоичном коде. Чтобы преобразовать 42 в двоичное число, мы последовательно делим его на 2 и отслеживаем остатки, пока частное не станет равным нулю.
Вот пошаговый процесс:
Шаг 1
42 ÷ 2 = 21, остаток 0
Шаг 2
21 ÷ 2 = 10, остаток 1
Шаг 3
10 ÷ 2 = 5, остаток 0
Шаг 4
5 ÷ 2 = 2, остаток 1
Шаг 5
2 ÷ 2 = 1, остаток 0
Шаг 6
1 ÷ 2 = 0, остаток 1
Чтобы получить двоичное представление, мы начинаем снизу (последний остаток) и читаем остатки снизу вверх.
Результирующий двоичный код для 42 : 101010
Итак, десятичное число 42 представлено в двоичном коде как 101010.
В контексте двоичного кода установленный бит относится к двоичной цифре (биту), которой установлено значение 1. С другой стороны, чистый бит относится к двоичной цифре, которой установлено значение 0.
Пример
Например, в двоичном коде 101010 имеются три установленных бита (соответствующие позициям со значением 1) и три чистых бита (соответствующие позициям со значением 0).
>= 1; } return $count; } // Driver Code $number= 12; echo "Number of setbits in $number: " .countSetBits($number); ?>
Number of setbits in 12: 2
> 1); } // Driver code // get value from user $n = 123; // function calling echo "Number of setbits in $n are: ".countSetBits($n); ?>
Number of setbits in 123 are: 6
В заключение, мы можем подсчитать установленные биты (1) в целом числе, используя как рекурсивный подход, так и цикл по всем битам в PHP. Подход с циклом предполагает перебор каждого бита целого числа с использованием цикла while. Мы инициализируем переменную-счетчик и выполняем итерацию, пока число не станет равным 0. Внутри цикла мы используем побитовое И с 1 для проверки младшего бита. Если он равен 1, мы увеличиваем счетчик. Затем мы сдвигаем число вправо на 1 бит. Этот процесс продолжается до тех пор, пока все биты не будут проверены и не будет возвращен окончательный счетчик.
Для рекурсивного подхода мы можем определить рекурсивную функцию, которая принимает целое число в качестве входных данных. Внутри функции мы проверяем младший бит, используя побитовый оператор И со значением 1. Если он равен 1, мы увеличиваем счетчик. Затем мы сдвигаем число вправо на 1 бит и рекурсивно вызываем функцию с обновленным числом. Базовый случай — когда число становится равным 0, и в этот момент мы возвращаем счетчик. Этот подход рекурсивно подсчитывает установленные биты до тех пор, пока число не станет равным 0. Оба подхода обеспечивают способ подсчета установленных битов в целом числе, что позволяет использовать различные варианты реализации в зависимости от конкретных потребностей и предпочтений программиста.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3