Как вы используете двоичное преобразование в Python / Bash / AWK?

1

Я новичок в двоичном преобразовании. Я использую Python, Bash и AWK ежедневно.

Я хотел бы видеть приложения на двоичном преобразовании на этих языках. Например, меня интересуют проблемы, которые вы решаете им при своей работе.

Где вы используете двоичное преобразование в Python/ Bash/AWK?

Я хотел бы видеть примеры кодов.

  • 4
    Я не уверен, что понимаю ваш вопрос. О каком бинарном преобразовании вы говорите?
  • 0
    Бинарное преобразование каких данных? Почему?
Показать ещё 4 комментария
Теги:
awk
binary

3 ответа

2
Лучший ответ

Преобразование строк двоичных цифр в число с использованием 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-разрядным номером.

Итак, словом, вы используете двоичные типы для

  • экономить место
  • имеют согласованные размеры записей
  • ускорить программы
  • 0
    @Owens: Вы ежедневно используете двоичное преобразование?
  • 0
    Опять же, это зависит от того, что вы подразумеваете под «двоичным преобразованием». В некоторых работах многие файлы данных были двоичными файлами по причинам, перечисленным выше.
Показать ещё 1 комментарий
2

В оболочке приятно использовать dc:

echo 2i 00001111 pq | dc

2i означает: база для входных чисел равна 2.

pq означает: печать и выход.

Другой способ:

echo 2o 15 pq | dc

Я не помню, чтобы использовать эту функцию в реальных ситуациях.

  • 0
    @mouviciel: Один победитель конкурса Topcoder сказал мне, что он должен ежедневно использовать двоичное преобразование с algorihtms. Это может быть правдой?
  • 0
    Может быть, для него ... Редкие случаи, когда мне нужно конвертировать в двоичный код и обратно, это когда я кодирую близко к аппаратному обеспечению.
Показать ещё 1 комментарий
0

В более новых версиях Python существует функция bin(), которая, как я полагаю, принимает int и возвращает двоичный литерал формы 0b011010 или что-то еще.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню