Я новичок в двоичном преобразовании. Я использую Python, Bash и AWK ежедневно.
Я хотел бы видеть приложения на двоичном преобразовании на этих языках. Например, меня интересуют проблемы, которые вы решаете им при своей работе.
Где вы используете двоичное преобразование в Python/ Bash/AWK?
Я хотел бы видеть примеры кодов.
Преобразование строк двоичных цифр в число с использованием Python в командной строке:
binary=00001111
DECIMAL=$(python -c "print int('$BINARY', 2)")
echo $decimal
Смотрите документы для функция int.
Ой, подождите, я неправильно понял вопрос, вы хотите знать, что превращает вас в бинарник. Ну, это зависит от того, что вы подразумеваете под "преобразованием в двоичный". Скажем, я хочу сохранить файл с целым числом миллионов. Целые числа будут от 0 до 32 000. Если бы я сохранил их в виде текста, для каждого числа (однозначного числа и разделителя) потребовалось бы в лучшем случае два байта, в худшем случае шесть байтов (пятизначное число и разделитель) со средним размером 4,6 байт на номер ( см. комментарий к математике). У меня также не было бы простого выбора 15-го числа. Если бы я хранил их как 16-битные целые числа (в двоичном формате), каждое число занимало бы ровно два байта, и я мог бы найти 15-е число seek
'to offset 2*(15-1)
и чтение двух байтов. Кроме того, когда я перехожу к математике на текстовую версию я (или мой язык), сначала нужно преобразовать строку в число, тогда как двоичная версия уже является 16-разрядным номером.
Итак, словом, вы используете двоичные типы для
В оболочке приятно использовать dc
:
echo 2i 00001111 pq | dc
2i означает: база для входных чисел равна 2.
pq означает: печать и выход.
Другой способ:
echo 2o 15 pq | dc
Я не помню, чтобы использовать эту функцию в реальных ситуациях.
В более новых версиях Python существует функция bin()
, которая, как я полагаю, принимает int и возвращает двоичный литерал формы 0b011010
или что-то еще.