Перейти до основного контенту

Як видалити провідні нулі у двійковій системі за допомогою Python

9 хв читання
2404 переглядів

Коли ми працюємо з двійковими числами в Python, іноді може знадобитися видалити провідні нулі. Провідні нулі-це нулі, які йдуть перед значущими одиницями в двійковій системі. Видалення цих нулів може бути корисним, коли ми хочемо спростити число або представити його в більш компактній формі.

У Python є кілька способів видалити провідні нулі в двійковій системі. Один із способів-використовувати функцію lstrip. Функція lstrip видаляє зазначені символи зліва від рядка. Ми можемо використовувати цю функцію, щоб видалити провідні нулі в двійковому числі.

Другий спосіб-використовувати вбудовану функцію int з параметром основи 2. Функція int перетворює рядок у ціле число, використовуючи задану основу. У нашому випадку основа - 2, оскільки ми працюємо з двійковими числами. При перетворенні рядка в ціле число за допомогою функції int, провідні нулі автоматично видаляються.

Переклад числа з десяткової системи в двійкову в Python

Щоб виконати переклад числа, досить передати його в якості аргументу функції bin() . Наприклад, щоб перевести число 10 з десяткової системи в двійкову, можна скористатися наступним кодом:

decimal_number = 10binary_number = bin(decimal_number)print(binary_number)

Результатом виконання даного коду буде рядок '0b1010', де' 0B ' позначає, що число записано в двійковій системі числення.

Якщо вам необхідно отримати тільки значення числа в двійковій системі, без префікса '0b', ви можете скористатися зрізами рядків:

decimal_number = 10binary_number = bin(decimal_number)[2:]print(binary_number)

В результаті виконання даного коду буде отримано значення '1010'.

Тепер ви знаєте, як перевести число з десяткової системи в двійкову за допомогою Python!

Видалення провідних нулів з двійкового числа в Python

Для видалення провідних нулів з двійкового числа в Python можна використовувати кілька способів.

  1. За допомогою вбудованих функцій
  2. За допомогою використання рядкових методів

Перший спосіб заснований на використанні вбудованих функцій Python, таких як bin() та int() . Функція bin () використовується для перетворення числа в двійковий рядок, а функція int () - для зворотного перетворення. За допомогою цих функцій можна видалити провідні нулі з двійкового числа.

# Исходное двоичное числоbinary_number = '000011010101'# Удаление ведущих нулейbinary_number = bin(int(binary_number, 2))print(binary_number)

Другий спосіб заснований на використанні рядкових методів Python, таких як lstrip() і rstrip() . Метод lstrip () використовується для видалення символів ліворуч від рядка, а метод rstrip () - для видалення символів праворуч від рядка. За допомогою цих методів можна видалити провідні нулі з двійкового числа.

# Исходное двоичное числоbinary_number = '000011010101'# Удаление ведущих нулейbinary_number = binary_number.lstrip('0')print(binary_number)

Обидва способи дають однаковий результат-видалення провідних нулів з двійкового числа. Вибір способу залежить від ваших уподобань і конкретної ситуації.

При видаленні провідних нулів з двійкового числа в Python необхідно враховувати, що деякі призначені для користувача вхідні дані можуть бути некоректними. Наприклад, якщо у вихідному двійковому числі немає жодної одиниці, то після видалення провідних нулів залишиться порожній рядок. Тому важливо перевіряти коректність вхідних даних і обробляти можливі помилки.

Проблема з провідними нулями при перекладі з двійкової в десяткову систему

У Python, наприклад, при використанні вбудованої функції int() для перетворення двійкового числа в десяткове, ця функція автоматично видаляє провідні нулі. Наприклад, число 00101 буде перетворено на число 101.

Однак, в деяких випадках, провідні нулі можуть мати значення і не повинні видалятися. Наприклад, при роботі з бітовими операціями або при обробці даних, де збереження початкової довжини числа важливо.

Для того щоб зберегти провідні нулі при перекладі з двійкової в десяткову систему, можна використовувати метод zfill(). Цей метод додає нулі на початку рядка, щоб досягти заданої довжини. Наприклад:

bin_number = '00101'decimal_number = int(bin_number.zfill(8), 2)

В даному прикладі, метод zfill() використовується, щоб додати нулі в початок рядка до довжини 8 символів. Потім, функція int() перетворює рядок у число, вказуючи базу 2 для двійкової системи. Таким чином, провідні нулі зберігаються і число 00101 успішно перетворюється в число 5.

Таким чином, використання методу zfill() дозволяє вирішити проблему з провідними нулями при перекладі з двійкової в десяткову систему, зберігаючи вихідну довжину числа і не втрачаючи інформації в процесі конвертації.

Як видалити провідні нулі з двійкового числа в Python

У програмуванні, іноді стикаються з ситуацією, коли отримуємо двійкове число, але у нас воно містить провідні нулі, які нам не потрібні. У таких випадках може виникнути необхідність позбутися цих нулів і отримати більш компактне представлення числа.

У мові програмування Python це можна зробити за допомогою вбудованої функції bin() та методу lstrip() . Функція bin() перетворює число в його двійкову запис, а метод lstrip () видаляє заданий символ (в нашому випадку - нулі) з початку рядка.

Ось приклад, який демонструє, як використовувати ці функції для видалення провідних нулів із двійкового числа:

Вхідне числоРезультат
0b000101010b10101
0b001110000b111000
0b000010100b1010

Як видно з прикладу, провідні нулі були видалені, і ми отримали більш компактне представлення числа.

Приклад коду для видалення провідних нулів у бінарному числі в Python

Для видалення провідних нулів в бінарному числі, можна використовувати вбудовану функцію Lstrip() в Python.

Ось простий приклад коду, який демонструє видалення провідних нулів у двійковій системі:

def remove_leading_zeros(binary):binary = binary.lstrip('0')return binarybinary_number = '00001011'result = remove_leading_zeros(binary_number)print(f'Бинарное число после удаления ведущих нулей: ')

Якщо запустити даний код, результатом буде:

Бинарное число после удаления ведущих нулей: 1011

Таким чином, функція remove_leading_zeros() успішно видаляє провідні нулі в бінарному числі.