Изменить базу ввода в сценарии оболочки с помощью 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
, Я оставлю это как есть, чтобы проиллюстрировать проблему.