Изменить базу ввода в сценарии оболочки с помощью DC?

Я пытаюсь изменить базу ввода и вывода, используя dc в сценарии оболочки. У меня проблемы с записью точной команды. У меня нет BASH.

Я пробовал вариации на это: (введите онемение) 2i 10o p | Округ Колумбия

1 ответ

Решение

dc Страница man использует термин "основание", а не "база"; это может помочь вам в поиске информации.

Вы должны установить входной радиус прежде, чем дать ему входной номер. Например:

echo 100 2i p | dc

печать 100 (десятичное число), потому что основание все еще было установлено по умолчанию 10 (десятичное число), когда dc увидел входное значение 100,

Попробуй это:

echo 16i DEADBEEF 10o p 2o p | dc # but see below

Выход:

DEADBEEF
11011110101011011011111011101111

Обратите внимание, что dc Кажется, требуется верхний регистр для шестнадцатеричных цифр A.. F, И вы должны быть осторожны с основополагающими характеристиками; после того, как вы сделали 16i установить ввод в шестнадцатеричное, 10i толкует 10 в виде шестнадцатеричного числа и устанавливает входной радиус 16 (и 16i пытается установить его на 0x16 или 22, что недопустимо).

На самом деле, я вижу, что столкнулся с этой проблемой сам. Я хотел установить выходной радиус до 16. Я должен был написать Ao p 2o p скорее, чем 10o p 2o p, Я оставлю это как есть, чтобы проиллюстрировать проблему.

Другие вопросы по тегам