Как преобразовать шестнадцатеричные числа в десятичные в калькуляторе Emacs?

Как преобразовать шестнадцатеричные числа в десятичные в Emacs calc? Например, если я ввожу FF, я хочу преобразовать его в 255.

ОБНОВЛЕНИЕ: Как мне получить обратную операцию, превратить основание 10 в основание 16?


person 1.618    schedule 07.12.2009    source источник


Ответы (3)


Вы можете ввести любое число в формате <base>#<number>. Пример: 16#FF немедленно преобразуется в 255.

Для реверса вам необходимо установить режим отображения вывода. В этом примере d r 16 RET задает для отображения основание 16. Установите его в основание 10, чтобы снова получить поведение по умолчанию.

Кстати, вы также можете прочитать The Fine ManualTM: Руководство по GNU Emacs Calc.

person Svante    schedule 07.12.2009
comment
C-x * q 10#255 покажет 255 в десятичном, шестнадцатеричном, восьмеричном и двоичном формате в мини-буфере. - person Davor Cubranic; 14.09.2016
comment
@DavorCubranic это работает, только если система счисления изначально была десятичной. Если это, например. двоичный, он будет показывать только двоичный файл. - person Arne; 09.12.2019
comment
Я наткнулся на это, когда пробовал вашу подсказку. Мой калькулятор был настроен на двоичное отображение... - person Arne; 10.12.2019

Сванте ответил на ваш вопрос, но я хотел бы добавить, что изменение режима отображения Radix имеет более быстрое нажатие клавиши:

  • Показать в шестнадцатеричном формате: d 6
  • Показать в десятичном виде: d 0
person piyo    schedule 17.12.2009

Конечно, вы можете ввести 16#FF, чтобы ввести 0xFF, но есть более удобный способ.

Другой вариант:

  1. измените систему счисления на шестнадцатеричный с помощью d 6
  2. затем введите все нужные вам шестнадцатеричные числа, добавив к ним префикс #, например #FF и <enter>. (# означает число интерпретации с заданным основанием отображения)
  3. После этого измените систему счисления обратно на десятичную с помощью d 0.

Примечание. Число, введенное без #, всегда вставляет десятичное число. Примечание 2. Это работает и в обратную сторону.

Отрицательные значения. Теперь предположим, что у вас есть 8-битная система, и вы хотите знать, как десятичное число -3 хранится в оперативной памяти этой системы.

  1. размер слова переключения: b w 8
  2. введите dec -3, набрав 3 n и <enter>
  3. установить систему счисления отображения в шестнадцатеричном формате с двумя дополнениями: O d 6. (Опция O as важна для включения дополнения до двух.)

Примечание. вы видите 16##FD. Два # означают, что он подписан, а значение, хранящееся в ОЗУ, равно 0xFD.

Вышеупомянутый материал также работает с d 2, d 8 (как ярлыки для bin и oct) и другими возможными системами счисления отображения от 2 до 36 (d r <radix-number>).

Эта информация взята из руководства по Emacs Calc. .

person jue    schedule 19.09.2019
comment
проголосовал за, так как вы отметили, что вам нужно начать с # - person Swedgin; 05.12.2019
comment
Когда я пытаюсь вставить шестнадцатеричное значение (без начального 0x) сразу после #, я получаю [Bad format], но достаточно просто сделать #` (обратная галочка), чтобы перейти к редактору строк и вставить туда шестнадцатеричный код. - person remcycles; 09.01.2020