Программа перевода в двоичный код

Мне нужно преобразовать строку, например «А» , в строку двоичного кода, например «01100011» , потом обработать немного двоичный код, пропустив его по функции «Исключающее ИЛИ» с другим двоичным кодом, например «01100011» с «11000010» , тогда выйдет «10100001» , и обратно перевести получившийся код в читаемую строку, например в «Т» . При этом, я хочу использовать русскую, английскую и украинскую раскладку и цифры, со знаками припинания. Не подскажете, как это сделать на Python 3? Вопрос состоит в том как в Python преобразовать строку в двоичный код и обратно используя любой алгоритм кодировки?

Отслеживать
14.2k 3 3 золотых знака 18 18 серебряных знаков 29 29 бронзовых знаков
задан 7 сен 2017 в 17:12
191 1 1 золотой знак 2 2 серебряных знака 11 11 бронзовых знаков
Вы можете привести пример входной и выходной строк и алгоритм получения ‘T’ из «11000010» ?
7 сен 2017 в 17:19

Нет, алгоритм кодировки может быть любым, хоть МТК-2 🙂 Мне нужны функции, которые быстро переведут текст в двоичный код, любым способом!

Перевод числа в двоичную систему за два шага!!!

7 сен 2017 в 17:25

Т.е. вопрос состоит в том как в Python преобразовать строку в двоичный код и обратно используя любой алгоритм кодировки? 😉

7 сен 2017 в 17:29
Да, именно это мне и требуется)
7 сен 2017 в 18:11
7 сен 2017 в 21:35

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Чтобы произвольный текст превратить в «01»-строки (биты):

Читайте также:
Программа jitsi meet как пользоваться

def text_to_bits(text, encoding=’utf-8′, errors=’surrogatepass’): bits = bin(int.from_bytes(text.encode(encoding, errors), ‘big’))[2:] return bits.zfill(8 * ((len(bits) + 7) // 8))
def text_from_bits(bits, encoding=’utf-8′, errors=’surrogatepass’): n = int(bits, 2) return n.to_bytes((n.bit_length() + 7) // 8, ‘big’).decode(encoding, errors) or ‘’
>>> text_to_bits(«мiр»))) ‘1101000010111100011010011101000110000000’ >>> text_from_bits(_) мiр

Чтобы выполнить XOR над двумя строками, нет необходимости биты в виде ascii-строк выражать:

from itertools import cycle def xor(message, key): return bytes(a^b for a, b in zip(message, cycle(key)))

Достаточно текст в байты закодировать, используя .encode() метод:

>>> key = b’key’ >>> xor(‘hello world’.encode(), key) b’x03x00x15x07nYx1cnx0bx07x01′ >>> xor(_, key).decode() # и обратно ‘hello world’

Для больших строк, можно numpy использовать:

import numpy as np # pip install numpy def slow_xor(aa, bb): a = np.frombuffer(aa, dtype=np.byte) b = np.frombuffer(bb, dtype=np.byte) return np.bitwise_xor(a, b).tostring()
>>> slow_xor(b’hello. ‘, ‘миръ’.encode()) b’xb8xd9xbcxd4xbexaexffxa4′
Отслеживать
ответ дан 7 сен 2017 в 22:15
51.9k 11 11 золотых знаков 107 107 серебряных знаков 309 309 бронзовых знаков

Спасибо большое за ответ!

Но как перевести «b’xb8xd9xbcxd4xbexaexffxa4′» в «читаемую» строку?

Почему МАШИНЫ говорят на ДВОИЧНОМ КОДЕ? — Научпок #shorts

8 сен 2017 в 16:03
8 сен 2017 в 17:20

Я тоже так думал. Пока не попробывал сделать это! Оказалось, что для xor нужно чтобы были одинаковые длины. А у b’xb8xd9xbcxd4xbexaexffxa4′ и b’миръ’ длины разные! Поэтому обратно не получается получить изначальный текст.

9 сен 2017 в 11:18
9 сен 2017 в 14:26
Да, спасибо, я уже разобрался, проблема у меня была) Спасибо большое за помощь 🙂
9 сен 2017 в 17:44

s = ‘отака собі тестова — String !’ def encode(s): return list(map(lambda x: «».format(ord(x)).zfill(16), s)) def decode(lst): return ».join(map(lambda x: chr(int(x,2)), lst))
In [10]: lst = encode(s) In [11]: lst Out[11]: [‘0000010000111110’, ‘0000010001000010’, ‘0000010000110000’, ‘0000010000111010’, ‘0000010000110000’, ‘0000000000100000’, ‘0000010001000001’, ‘0000010000111110’, ‘0000010000110001’, ‘0000010001010110’, ‘0000000000100000’, ‘0000010001000010’, ‘0000010000110101’, ‘0000010001000001’, ‘0000010001000010’, ‘0000010000111110’, ‘0000010000110010’, ‘0000010000110000’, ‘0000000000100000’, ‘0000000000101101’, ‘0000000000100000’, ‘0000000001010011’, ‘0000000001110100’, ‘0000000001110010’, ‘0000000001101001’, ‘0000000001101110’, ‘0000000001100111’, ‘0000000000100000’, ‘0000000000100001’] In [12]: decode(lst) Out[12]: ‘отака собі тестова — String !’

Читайте также:
Программа как изменить себя фигуру

Источник: ru.stackoverflow.com

Скачать Numerimal 1.2.2

Old Calculator for Windows 10 — привычный классический калькулятор из Windows 7 или 8.x для пользователей Windows 10.

NumLock Calculator — очень удобный калькулятор, который выскакивает при нажатии NumLock (или ScrollLock), а.

Kalkules — незаменимый инструмент для любого учащегося старших классов и студента, который.

Простой калькулятор, который также можно использовать для конвертации валют. Включает.

KeepCalc — бесплатный портативный калькулятор для тех, кто много и часто вынужден считать.

Небольшая бесплатная программа для вычисления контрольных сумм файлов. Присутствует.

Источник: www.softportal.com

Конвертировать Текст в Бинарный формат

Считаете ли вы этот инструмент полезным? То поделитесь этим с друзьями или коллегами. Это поможет нам сделать наши бесплатные веб-инструменты лучше.

Эта форма позволяет вам конвентировать строку в двоичные числа, вставьте или загрузите текст ниже:

Конвертировать Ваш результат можно увидеть ниже.

Результат конвентирования строки в двоичный данные

Переместить чтобы Сохранить Перенести в «Вставить код» для сохранения

О конвентировании строки в двоичные данные

Что такое Binary?

Бинарная цифровая схема или система счисления base-2 представляет числовые значения с использованием двух символов 0 и 1. Более конкретно, обычная система base-2 представляет собой позиционную запись с основанием 2. Благодаря ее простой реализации в цифровой электронике Схема с использованием логических элементов, двоичная система используется внутри всех современных компьютеров.

О конвентировании строки в двоичный формат

Конвентировать строку в двоичный формат была создана для онлайн конвентирования любых строковых данных (букв, цифр, знаков пунктуации и некоторых символов) в двоичные данные. 1 и 0, которые заставляют наш мир вращаться сегодня. Этот инструмент преобразует строку ASCII, Unicode или UTF8 в ее двоичное представление.

Как это работает?

Просто вставьте строку в текстовую область выше и нажмите кнопку «Конвентировать», и вы получите двоичные данные в следующей текстовой области.

Читайте также:
Как установить на Айфон программу музыка

Пример

wtools.io
Двоичные данные:
01110111 01110100 01101111 01101111 01101100 01110011 00101110 01101001 01101111
Пожертвовать

Вам понравился этот инструмент? Вы можете задонатить нам.

Это поможет нам улучшить наши бесплатные веб-инструменты.

Источник: wtools.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru