Цифры в шестнадцатеричной системе счисления: Недопустимое название | Наука | Fandom
Содержание
Таблица 16 ричной системы. Алфавит шестнадцатеричной системы счисления. §13. Шестнадцатеричная система счисления с традиционным алфавитом
Для написания
программ на Ассемблере, необходимо
разобраться с шестнадцатеричной
системой счисления. Ничего
сложного в ней нет. Мы используем в
жизни десятичную систему. Уверен,
что вы все ее знаете, поэтому я
постараюсь объяснить
шестнадцатеричную систему, проводя
аналогию с десятичной.
Итак, в десятичной
системе если мы к какому-нибудь
числу справа добавим нуль, то это
число увеличится в 10 раз. Например: 1
х 10 = 10; 10 х 10 = 100; 100 х 10 = 1000 и т.д. В
этой системе мы используем цифры от
0 до 9, т.е. десять разных цифр
(собственно, поэтому она и
называется десятичная).
У нас может быть базовая система с двумя номерами, или это двоичная система чисел, где вместо 10 цифр у вас есть только две цифры. Каждое место, вместо того, чтобы быть силой десяти, будет состоять из двух. Теперь вы можете себе представить, что мы можем продолжать расширять это. Мы можем распространяться на три, четыре, пять, шесть, семь, восемь, девять, или мы могли бы даже пойти выше. Как вы можете себе представить, вместо того, чтобы иметь только 10 цифр, он будет иметь Что это за цифры? Как мы увидим, вместо того, чтобы место было степенью двух или степеней десяти, будут полномочия, которые мы можем видеть, мы можем повторно использовать существующие 10 цифр из десятичной системы счисления.
В
шестнадцатеричной системе мы
используем, соответственно,
шестнадцать «цифр». Я специально
написал слово «цифр» в кавычках,
т.к. в ней используются не только
цифры. Да и в самом деле как так?
Объясняю: от 0 до 9 мы считаем так же,
как и в десятичной, а вот дальше
будет так: A, B, C, D, E, F. Число F, как не
трудно
посчитать,
будет равно 15 в десятичной системе
(см. табл. 1).
Мы можем повторно использовать ноль, один, два, три, четыре, пять, шесть, семь, восемь, девять, но тогда нам понадобится еще шесть цифр. Соглашение состоит в том, чтобы использовать первые шесть букв. а не цифры, но помните, что это просто произвольные черви на листе бумаги. Это просто произвольные символы, которые мы выросли, чтобы общаться с вещами. Вы выросли, чтобы связать этот символ прямо здесь с восемью вещью, со словом восемь, с которым вы связываетесь, когда видите много объектов. Это буквально означает, что если у тебя есть 10 вещей, то ты бы сказал: «У меня есть вещи там».
Десятичное | Шестнадцатеричное |
Таблица 1. Десятичная и шестнадцатеричная системы.
Т.о., если мы к
какому-нибудь числу в
шестнадцатеричной системе добавим
справа нуль, то это число
увеличится в
16
раз.
Вместо того, чтобы сказать: «Мне 15», можно сказать: «У меня там есть вещи». Теперь, как это помогает? Ну, давайте посмотрим, можем ли мы представить одно и то же число 231 или 231 в десятичном значении. Что такое семь? Каковы значения этих мест? Это первое место представляет 16 для нулевой мощности или по-прежнему представляет собой место. Итак, что здесь представляет это место? Ну, в базе 10, это было 10 до первой мощности. В двух базовых, это было две для первой власти. Это буквально, хорошо, позвольте мне написать слово, это буквально шестьдесят.
Это то, что представляет это число. Ну, это то же самое, что и в 14 раз 14 раз 16. Это будет здесь 14 шестнадцати, 14 раз 16 — 224 плюс семь. Ну, 224 плюс 7 будет давать вам надежду, вы можете это оценить. Вы можете представлять одно и то же количество в любой из этих различных систем счисления. В любом количестве, которое вы можете представить в десятичной форме, вы также можете представить это число в двоичном формате, или в шестнадцатеричном, или в базовом трех, или в базе 60, или в базе 31, что бы вы ни делали.
Пример 1:
1 х
16 = 10; 10 х 16 = 100; 100 х 16 = 1000 и т.д.
Вы смогли
отличить в Примере 1
шестнадцатеричные числа от
десятичных? А из этого ряда: 10, 12, 45,
64, 12, 8, 19? Это могут быть как
шестнадцатеричные, так и
десятичные. Для того, чтобы не было
путаницы, и компьютер смог бы
однозначно отличить одни числа от
других, в Ассемблере принято после
шестнадцатеричного числа ставить
символ h или H (H это
сокращение от англ.
hexadecimal
(шестнадцатеричное).
Для краткости его иногда называют
просто
Hex
)
. А после десятичного
ничего не ставить. Т.к. числа от 0 до 9
в обоих системах имеют одинаковые
значения, то числа, записанные как 5
и 5h одно и тоже.
Возможно, вы заметили шаблон. Чем больше символов у нас, так и в базе 16, у вас есть 16 символов, тем меньше значений места нам нужно представлять одинаковое количество. Один из способов подумать об этом — каждое из мест содержит больше информации. Хотя это здесь только один из двух символов. Это один из десяти персонажей. Чем больше символов у вас есть, тем больше цифр, которые вы могли бы разместить в каждом месте, тем меньше мест вам нужно представлять определенное количество. Это просто интересная вещь, которую нужно наблюдать.
Но, надеюсь, вы выйдете из игры, как и в случае с базой 16, как и я, и это действительно полезно. Это фактически используется, если вы смотрите на большинство веб-страниц. Если вы действительно хотите сделать что-нибудь забавное, позвольте мне дать вам еще один. Опять же, это не очень специализированный. Система чисел, которую мы используем в повседневной жизни, называется десятичной или системой и использует 10 символов от 0 до 9 для представления значения.
Т.о. Пример 1 (см.
выше) правильнее будет записать
так: 1 х 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h.
Либо так: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h =
1000h.
Для чего нужна
шестнадцатеричная система, мы
рассмотрим в последующих выпусках.
А в данный момент для нашего
примера программы, который будет
рассмотрен ниже, нам необходимо
знать о существовании
шестнадцатеричных чисел.
Где и почему используется шестнадцатеричный?
Большинство кодов ошибок и других значений, используемых внутри компьютера, представлены в шестнадцатеричном формате. Да, двоичный код намного проще в некоторых отношениях, но нам также намного проще читать шестнадцатеричные значения, чем двоичные. Подсчет в шестнадцатеричном формате легко, если вы помните, что есть 16 символов, которые составляют каждый набор чисел.
Как вручную преобразовать шестнадцатеричные значения
В десятичном формате мы все знаем, что мы считаем так. Однако в шестнадцатеричном формате мы учитываем все 16 чисел. Вот несколько примеров некоторых сложных шестнадцатеричных «переходов», которые могут оказаться полезными. Добавление шестнадцатеричных значений очень просто и фактически выполняется очень похоже на подсчет чисел в десятичной системе.
Итак, подведем
итог. Шестнадцатеричная система
счисления состоит из 10 цифр (от 0 до
9) и 6 букв латинского алфавита (A, B, C,
D, E, F). Если к какому-нибудь числу в
шестнадцатеричной системе добавим
справа нуль, то это число
увеличится в
16
раз. Очень важно
уяснить данную тему
, так как мы
будем постоянно использовать ее
при написании программ.
Большинство из нас может это сделать в наших головах — вот здесь один из способов взглянуть на это, что полезно. Когда вводятся три цифры, например 123, мы знаем, что мы должны смотреть на все три места, чтобы понять, что они на самом деле означают. Уберите первые два, а 3 все еще. 2 умножается на 10, потому что это вторая цифра в номере, как и в первом примере. Опять же, заберите 1 из этого 123, и вы останетесь с 23, что равно 20. Третье число справа взято раз 10, дважды.
Вот еще два способа взглянуть на это. То же самое верно, если число в тысячах, например 1. Сначала вы должны преобразовать шестнадцатеричные цифры в десятичные, а затем просто добавить числа вместе, как и с двумя приведенными выше примерами. Следующее число слева от него должно быть умножено на 16, что, как и второе число из 123 выше, необходимо чтобы умножить на 10, чтобы сделать число.
Теперь немного о
том, как я буду строить примеры на
Ассемблере. Не совсем удобно
приводить их в HTML-формате, поэтому
сперва будет сам код программы с
пронумерованными строчками, а
сразу же после него объяснения и
примечания.
Примерно так:
строк | Код программы |
(1) | mov ah,9 |
Объяснения:
Наконец, третье число справа нужно умножить на 16, дважды, как десятичное число, нужно умножить на 10, дважды, когда у него три цифры. Хотя хорошо знать, как это сделать вручную, конечно, гораздо проще работать с шестнадцатеричными значениями с калькулятором или конвертером.
Есть много онлайн-шестнадцатеричных конвертеров, которые действительно просты в использовании и являются лишь немногими из них. Одним из примеров будет добавление шестнадцатеричного и двоичного значений вместе, а затем просмотр результата в десятичном формате. Поскольку десятичное число относится к числу 10, а у нас есть десять пальцев и десять пальцев, мы склонны любить использовать числа в группах десятков, встроенных в нашу систему нумерации.
В строке (1) мы
делаем то-то, а в строке (15) то-то.
Огромная
просьба:
НЕ копируйте
программы со страницы в буфер, а
затем не вставляйте их в Блокнот
(или еще куда-нибудь)!
Перепечатывайте их вручную в
текстовом редакторе. Если есть
принтер, то выделите программу,
распечатайте выделенный фрагмент,
а затем перебейте в редактор с
бумаги. Все примеры нужно
набирать самостоятельно!
Это
ускорит запоминание операторов.
Мы можем разбить каждое из этих чисел на кратные степени 10. Если вы предпочитаете экспонентов, также известных как полномочия, вы здесь. Вам даже не нужно беспокоиться о фракциях. Шестнадцатеричный К сожалению, компьютеры не имеют 10 пальцев и 10 пальцев. На самом деле у них вообще нет! Люди, которые делают эти машины, решили, что это слишком сложно сделать компьютер, который может считаться точно так же, как человек. Итак, вместо этого компьютеры используют двоичный код, который мы можем записать в сокращенной форме — шестнадцатеричной.
Шестнадцатеричный, часто называемый шестнадцатеричным, является методом группировки чисел в степени 16 вместо полномочий. Мы можем назвать шестнадцатеричную базу. Самая большая цифра в десятичной форме. Например, чтобы представить девятнадцать, мне нужно поставить номер один и номер девять рядом друг с другом: Итак, десятичные числа используют цифры от 0 до 9, всего десять разных цифр. Но для шестнадцатеричных чисел требуется более десяти цифр. Они должны соответствовать 16 типам чисел в одну цифру.
И еще. Строчные и
ПРОПИСНЫЕ буквы в Ассемблере не
различаются. Записи вида:
Ассемблером
воспринимаются одинаково. Можно,
конечно, заставить Ассемблер
различать строчные и ПРОПИСНЫЕ
символы, но мы пока этого делать не
будем. Для удобства чтения
программы лучше всего операторы
печатать строчными буквами, а
названия подпрограмм и меток
начинать с прописной. Но это как
кому будет удобно.
Чтобы решить эту проблему, шестнадцатеричные числа имеют несколько алфавитных букв, используемых в качестве числовых цифр. Шестнадцатеричные числа. Шестнадцатеричные обозначения В других руководствах, текстовых файлах и программах вы обычно найдете несколько типов обозначений, которые отличают шестнадцатеричные числа от десятичных чисел.
Чтобы убедиться, что кто-то еще знает, что вы говорите о шестнадцатеричных числах, а не о десятичных числах, вы можете использовать вышеупомянутые три обозначения. Это обозначение является одной из наиболее распространенных форм. Все числа считаются шестнадцатеричными числами, если не указано иное.
Итак,
переходим к нашей первой программе:
(1) CSEG segment
(2) org 100h
(4) Begin:
(6) mov ah,9
(7) mov dx,offset Message
(8) int 21h
(10) int 20h
(11)
(12) Message db «Hello,
world!$»
(13) CSEG ends
(14) end Begin
Для того, чтобы
объяснить все операторы данного
примера, нам потребуется несколько
выпусков. Поэтому описание
некоторых команд мы просто опустим
на данном этапе. Просто считайте,
что так должно быть. В самое
ближайшее время мы рассмотрим эти
операторы подробно. Итак, строки с
номерами (1), (2) и (13) вы просто
игнорируете.
В предыдущей статье мы рассмотрели двойную и десятичную системы. Сегодня мы имеем дело с третьей приоритетной системой. Тот или иной лингвист наверняка уже знает: основой для этой платежной системы является 16. И если мы уже немного работаем с двойной и десятичной системой, обучение третьей системе не должно быть слишком сложным.
Если бы мы имели только две цифры, 0 и 1 в двойной системе, шестнадцатеричная система имеет 16 цифр. Но в тот момент мы будем брать цифры только как цифры, как цифра «12» отличается от двух цифр 1 и 2? Устраните здесь, создайте буквы. Таким образом, каждая цифра действительно четко идентифицируется и уникальна. В противном случае платежная система ведет себя так, как известно. Только орфография — это нечто особенное.
Строки (3), (5), (9) и
(11) остаются пустыми. Это делается
для наглядности. Ассемблер их будет
просто опускать.
Теперь перейдем к
рассмотрению остальных операторов.
Со строки (4) начинается код
программы. Это метка, указывающая
Ассемблеру на начало кода. В строке
(14) стоят операторы end Begin (Begin англ. начало;
end конец). Это конец
программы. Вообще вместо слова
Begin
можно было бы
использовать что-нибудь другое.
Например,
Start:. В
таком случае, нам пришлось бы и
завершать программу
End Start (14).
Бинарные и десятичные числа можно отличить относительно легко. Если присутствуют только 0 и 1, число в соответствующем контексте достаточно надежно записано двоичным. В шестнадцатеричном и десятичном значениях опасность больше запутать, потому что не только 2, но и 10 цифр идентичны. Достаточно теории, мы снова начинаем с примера.
Преобразование десятичных чисел в шестнадцатеричные числа также выполняется быстро. Теперь мы объединяем три системы, и мы рассматриваем, как эти системы используются в компьютерах. Начнем с наименьшей единицы: бит. Один бит — это наименьший объем данных, который может обрабатывать компьютер. Это цифра, то есть 0 или От нескольких бит, теперь все остальные структуры.
Строки (6) (8)
выводят на экран сообщение Hello, world!.
Здесь придется вкратце рассказать
о регистрах процессора (более
подробно эту тему мы рассмотрим в
следующем выпуске).
Регистр
процессора это специально
отведенная память для хранения
какого-нибудь числа.
Например:
Если мы хотим
сложить два числа, то в математике
запишем так:
Байт может использоваться для отображения чисел от -255 до 255. Чтобы вы могли различать положительный и отрицательный, в качестве цифр можно использовать только 7 бит. Однако в некоторых случаях это правило можно пренебречь в пользу экспоненциально растущего диапазона значений.
Введение в шестнадцатеричную систему
Шестнадцатеричные числа: преобразование, орфография. И, наконец, как всегда, результаты. Они должны быть представлены здесь шаг за шагом. Эти шестнадцатеричные значения всегда начинаются с алмаза #. За ним следуют 3 пары из 2 шестнадцатеричных символов. 3 пары представляют значения цвета в порядке красно-зелено-синего, первый для красного, последний для синего. Как следует из названия, шестнадцатеричная система представляет собой числовую систему на основе 16. Таким образом, 16 символов доступны для каждого символа.
A, B и
C это своего рода
регистры (если говорить о
компьютере), в которых могут
хранится некоторые данные. А=5 можно
прочитать как: Присваиваем А
число 5
.
Для присвоения
регистру какого-нибудь значения, в
Ассемблере существует оператор mov
(от англ. move загрузить). Строку (6)
следует читать так: Загружаем в
регистр
AH
число
9 (проще говоря, присваиваем
AH
число 9).
Ниже рассмотрим зачем это надо.
Для каждого отдельного значения цвета есть 2 цифры, шестнадцать — это то же самое, что и для нормальной десятичной системы: если максимум достигнут в одной точке, точка до точки увеличивается на 1. Когда цвет указывается как шестнадцатеричное значение, чем больше значение, тем ярче становится цвет.
Пример применения Цвета как шестнадцатеричное значение. В этом случае десятичные значения могут быть указаны от 0 до 255, разделенные запятой. Порядок идентичен порядку шестнадцатеричной нотации, и также верно следующее: чем больше значение, тем ярче цвет, 255 является максимальным. В качестве альтернативы возможны и процентные данные, но это очень редко.
В строке (7)
загружаем в регистр
DX адрес сообщения для
вывода (в данном примере это будет
строка
Hello, world!$
).
Прерывания
будут подробно рассматриваться в
последующих выпусках. Здесь я скажу
несколько слов.
Прерывание
MS-DOS
это своего рода
подпрограмма (часть
MS-DOS)
, которая находится
постоянно в памяти и может
вызываться в любое время из любой
программы.
Рассмотрим
вышесказанное на примере (мелким шрифтом
выделим примечания
):
Программа
сложения двух чисел
НачалоПрограммы
A=5
в переменную A заносим
значение 5
B=8
в переменную B значение
8
ВызовПодпрограммы
Сложение
теперь С
равно 13
A=10
тоже самое, только
другие числа
B=25
ВызовПодпрограммы
Сложение
теперь С
равно 35
КонецПрограммы
Подпрограмма
Сложение
C=A+B
ВозвратИзПодпрограммы
возвращаемся
в то место, откуда вызывали
КонецПодпрограммы
В данном примере
мы дважды вызвали подпрограмму Сложение
,
которая сложила два числа,
переданные ей в переменных
A и
B.
Результат помещается в переменную
С. Когда вызывается подпрограмма,
компьютер запоминает с какого
места она была вызвана, а затем,
когда закончила работу
подпрограмма, компьютер
возвращается в то место, откуда она
вызывалась. Т.о. можно вызывать
подпрограммы неопределенное
количество раз с любого места.
При выполнении
строки (8) программы на Ассемблере
мы вызываем подпрограмму (в данном
случае это называется прерывание),
которая выводит на экран строку.
Для этого мы, собственно, и помещаем
необходимые значения в регистры.
Всю необходимую работу (вывод
строки, перемещение курсора) берет
на себя подпрограмма. Эту строку
можно прочитать так: вызываем
двадцать первое прерывание (int от англ.
interrupt прерывание). Обратите
внимание, что после числа 21 стоит
буква
h. Это, как
мы уже знаем, шестнадцатеричное
число (33 в десятичной системе).
Конечно, нам ничего не мешает
заменить строку
int 21h на
int 33. Программа будет
работать корректно. Просто в
Ассемблере принято указывать номер
прерывания в шестнадцатеричной
системе.
В строке (10) мы, как
вы уже догадались, вызываем
прерывание 20
h.
Для вызова данного прерывания не
нужно указывать какие-либо
значения в регистрах. Оно выполняет
только одну задачу: выход из
программы (выход в DOS). В результате
выполнения прерывания 20h, программа
вернется туда, откуда ее запускали
(загружали, вызывали). Например, в
Norton
Commander или
DOS
Navigator.
Строка (12)
содержит сообщение для вывода.
Первое слово (message сообщение) название
сообщения. Оно может быть любым
(например,
mess или
string и пр.).
Обратите внимание на
строку (7), в которой мы загружаем в
регистр
DX адрес
нашего сообщения.
Можно создать еще
одну строку, которую назовем
Mess2. Затем, начиная со
строки (9) вставим следующие
команды:
(10) mov dx,offset Mess2
(13) Message db «Hello, world!$»
(14) Mess2 db «Это Я!
$»
и ассемблировать
нашу программу заново.
Надеюсь, что вы
догадались, что произойдет
Обратите внимание
на последний символ в строках
Message
и
Mess2 — $. Он указывает на конец
строки. Если мы его уберем, то 21
h прерывание продолжит
вывод до тех пор, пока не встретится
где-нибудь в памяти символ
$. На экране мы увидим
мусор
.
Если у вас есть отладчик, то можно
посмотреть как будет работать наша
программа.
Целю настоящего выпуска не было
разобраться подробно с каждым
оператором
. Это невозможно, т.к. у
вас еще недостаточно знаний. Я
полагаю, что уже через 3-4 выпуска вы
поймете принцип и структуру
программы на Ассемблере. Может
быть, вам показался язык Ассемблера
чрезвычайно сложным, но это,
поверьте, с первого взгляда.
Рис. 13.1.
Шестнадцатеричная система счисления является для нас первой, чей алфавит включает цифры, не всегда совпадающие по написанию с десятичными — просто цифр в нём больше на шесть. Однако алфавит этой системы в общем случае уместно считать традиционным (см. §2), что означает наличие в нём цифр, изображённых на рис. 13.1. С появлением «новых» цифр (по отношению к привычной десятичной системе) применительно к ним используются названия, доселе недопустимые. Например, мы не могли сказать раньше «цифра десять», или «цифра четырнадцать» (напомним, что всё-таки цифра — это один знак, — см. §23 «Введения в информатику»). Теперь это не только вполне приемлемо, но по-другому эти «новые» цифры можно называть разве что так, как это принято в языках, использующих латинский алфавит.
Итак, цифра A — это цифра «десять», B — «одиннадцать», C — «двенадцать», D — «тринадцать», E — «четырнадцать» и, наконец, F — это «пятнадцать».
Рис. 13.2.
Классическая шестнадцатеричная система является позиционной. Другими словами, по отношению к числам, построенным по её правилам, имеет смысл говорить об их разрядах. Разряды шестнадцатеричных чисел называются так: разряд единиц, разряд шестнадцати, двухсот пятидесяти шести и т. д. Как мы видим, они строятся по названию числа, образованного возведением в очередную степень основания (базы) системы счисления — числа 16. Названия некоторых разрядов целой и дробной частей шестнадцатеричного числа видны из рис. 13.2.
Иногда шестнадцатеричное число не содержит десятичный индекс, обозначающий базу. Вместо него может быть указана латинская буква «H», ставящаяся в конце числа и показывающая, что число записано в шестнадцатеричной форме. Такое обозначение часто используют в профессиональной литературе по информатике. Следует иметь в виду, что H — это замена индекса и никак не цифра!
Что, впрочем, кажется вполне естественным, если взглянуть на алфавит системы счисления.
Буква «H» есть сокращение английского слова hexadimal
, что означает шестнадцатеричное (число)
. Другим часто используемым сокращением этого слова является «hex», означающее то же самое (например, оно используется в стандартном приложении операционной системы Windows «Калькулятор», об этом можно прочитать в §1 «Стандартные приложения операционной системы Windows» / «Программа «Калькулятор»).
Шестнадцатеричная система счисления одной цифрой описывает содержимое полубайта. Любое же двузначное шестнадцатеричное число удобно представляет содержимое одного байта. По этой причине изучаемая система счисления широко используется в информатике и инженерных дисциплинах, при участии которых разрабатывается цифровая техника.
Будучи тесно связанной с двоичной системой счисления (как, впрочем, и восьмеричная система), она позволяет одним знаком описать текущее значение свойства объекта, если количество возможных значений этого свойства 16, или текущие значения логических свойств объекта, если количество этих свойств 4 и они комбинируются друг с другом.
Системы счисления в культуре | |
---|---|
Индо-арабская система счисления | |
Арабская Индийские Тамильская Бирманская | Кхмерская Лаоская Монгольская Тайская |
Восточноазиатские системы счисления | |
Китайская Японская Сучжоу Корейская | Вьетнамская Счётные палочки |
Алфавитные системы счисления | |
Абджадия Армянская Ариабхата Кириллическая | Греческая Эфиопская Еврейская Катапаяди |
Другие системы | |
Вавилонская Египетская Этрусская Римская | Аттическая Кипу Майская |
Позиционные системы счисления | |
Десятичная система счисления (10) | |
2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 20, 60 | |
Нега-позиционная система счисления | |
Симметричная система счисления | |
Смешанные системы счисления | |
Фибоначчиева система счисления | |
Непозиционные системы счисления | |
Единичная (унарная) система счисления | |
Список систем счисления |
Шестнадцатеричная система счисления (шестнадцатеричные числа) — позиционная система счисления по целочисленному основанию 16
.
Обычно в качестве шестнадцатеричных цифр используются десятичные цифры от 0 до 9 и латинские буквы от A до F для обозначения цифр от 1010 до 1510, то есть (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
).
Широко используется в низкоуровневом программировании и компьютерной документации, поскольку в современных компьютерах минимальной единицей памяти является 8-битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами. Такое использование началось с системы IBM/360, где вся документация использовала шестнадцатеричную систему, в то время как в документации других компьютерных систем того времени (даже с 8-битными символами, как, например, PDP-11 или БЭСМ-6) использовали восьмеричную систему
.
В стандарте Юникода номер символа принято записывать в шестнадцатеричном виде, используя не менее 4 цифр (при необходимости — с ведущими нулями
).
Шестнадцатеричный цвет — запись трёх компонент цвета (R, G и B) в шестнадцатеричном виде
.
В математике
В математике основание системы счисления принято указывать в десятичной системе в нижнем индексе. Например, десятичное число 1443 можно записать как 144310 или как 5A316
.
В языках программирования
В разных языках программирования для записи шестнадцатеричных чисел используют различный синтаксис
:
- В Ада и VHDL такие числа указывают так: «16#5A3#».
- В Си и языках схожего синтаксиса, например, в Java, используют префикс «0x». Например, «0x5A3».
- В некоторых ассемблерах используют букву «h», которую ставят после числа. Например, «5A3h». При этом, если число начинается не с десятичной цифры, то для отличия от имён идентификаторов (например, констант) впереди ставится «0» (ноль): «0FFh» (25510)
- Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бейсика используют префикс «$». Например, «$5A3».
- Некоторые иные платформы, Например ZX Spectrum в своих ассемблерах (MASM, TASM, ALASM, GENS и т. д.) использовали запись #5A3, обычно выровненную до одного или двух байт: #05A3.
- Другие версии Бейсика используют для указания шестнадцатеричных цифр сочетание «&h». Например, «&h5A3».
- В Unix-подобных операционных системах (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как 0xCC, где CC — шестнадцатеричный код символа.
В электронных калькуляторах
Б3-34 и ему подобные используют «-», «L», «C», «Г», «E» « » (space) на их экране
.
Перевод чисел из шестнадцатеричной системы в десятичную
Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа
.
Например, требуется перевести шестнадцатеричное число 5A3 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16
:
5A316 = 3·160+10·161+5·162
= 3·1+10·16+5·256 = 3+160+1280 = 144310
Перевод чисел из двоичной системы в шестнадцатеричную и наоборот
Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную нужно заменить каждую его цифру на соответствующую тетраду из нижеприведенной таблицы перевода
.
Например
:
0101101000112 = 0101 1010 0011 = 5A316
Таблица перевода чисел
0hex | = | 0dec | = | 0oct | 0 | 0 | 0 | 0 | |||
1hex | = | 1dec | = | 1oct | 0 | 0 | 0 | 1 | |||
2hex | = | 2dec | = | 2oct | 0 | 0 | 1 | 0 | |||
3hex | = | 3dec | = | 3oct | 0 | 0 | 1 | 1 | |||
4hex | = | 4dec | = | 4oct | 0 | 1 | 0 | 0 | |||
5hex | = | 5dec | = | 5oct | 0 | 1 | 0 | 1 | |||
6hex | = | 6dec | = | 6oct | 0 | 1 | 1 | 0 | |||
7hex | = | 7dec | = | 7oct | 0 | 1 | 1 | 1 | |||
8hex | = | 8dec | = | 10oct | 1 | 0 | 0 | 0 | |||
9hex | = | 9dec | = | 11oct | 1 | 0 | 0 | 1 | |||
Ahex | = | 10dec | = | 12oct | 1 | 0 | 1 | 0 | |||
Bhex | = | 11dec | = | 13oct | 1 | 0 | 1 | 1 | |||
Chex | = | 12dec | = | 14oct | 1 | 1 | 0 | 0 | |||
Dhex | = | 13dec | = | 15oct | 1 | 1 | 0 | 1 | |||
Ehex | = | 14dec | = | 16oct | 1 | 1 | 1 | 0 | |||
Fhex | = | 15dec | = | 17oct | 1 | 1 | 1 | 1 | |||
Системы счисления
Кодирование информации — представление информации в той или иной стандартной форме.
Например, письменность и арифметика — кодирование речи и числовой информации, музыку кодируют с помощью нот.
Чтобы использовать числа их нужно как-то записывать и называть.
Самые первые системы нумерации возникли в древнем Египте и Месопотамии — применяли иероглифы.
Системы счисления — способы кодирования числовой информации, то есть способ записи чисел с помощью некоторого алфавита, символы которого называют цифрами.
В древнем Вавилоне делили час на 60 минут, угол на 360 градусов, англосаксы начали делить год на 12 месяцев, сутки на два периода по 12 часов, продолжительность года 360 суток.
В Риме семь чисел обозначают буквами. 1-I, 5-V, 10-X, 50- L,100-C, 500-D, 1000-M.
IV (4=5-1)
VI (6=5+1)
Значение числа определяется как сумма или разность цифр числа. Это непозиционная система счисления.
Славяне числа кодировали буквами А=1, В=2, Г=3; чтобы избежать путаницы ставился специальный знак ~ титло. Алфавитная система счисления. Славянская нумерация сохранялась до конца XVII века.
При Петре I возобладала так называемая арабская нумерация. Славянская нумерация сохранилась в богослужебных книгах.
Самой популярной системой кодирования чисел оказалась позиционная, десятичная. Используются десять цифр. Значение каждой определяется той позицией, которую цифра занимает в записи числа.
Эта система пришла из Индии, где она появилась не позднее VI века, европейцы заимствовали ее у арабов, назвав ее арабской. Из арабского языка заимствовано слово «цифра». Причина ее возникновения анатомическая — 10 пальцев. Анатомическая система счисления (существовали пятеричные, двадцатеричные системы счисления).
Например, 23 — три единицы, два десятка 32 — две единицы, три десятка 400 — 4 сотни, два 0 вклад в число не дают, нужны для того, чтобы указывать позицию 4.
В десятичной позиционной системе особую роль играет число 10 и его степени, например, 1996 — 6 единиц, 9 десятков, 9 сотен 1 тысяча или 1996=6+9*10+9*100+1*1000, т. к.1000=103, 100=102, 10=101, таким образом, 1996=1*103 + 9*102 + 9*101 +6*100.
Любое число в нулевой степени равно единице 0,10 = 1
То есть любое 4-х значное число можно записать в следующем виде:
N=a3*103+a2*102+a1*101+a0*100
a3, a2, a1, a0-десятичные цифры, от 1 до 9 или коэффициенты 3 2 1 0 — разряды, степени числа 10 со степенями называют основанием системы счисления.
Но основанием системы может быть не обязательно число 10, мы можем записать число в р-ичной системе, где основанием будут степени числа р. Любое число N в р-ичной системе мы можем представить в виде формулы:
N=an*Pn+an-1*Pn-1+…+a1*P1+a0*P0
Если взять за основание 60, то придется использовать 60 разных цифр. Такая система была в Древнем Вавилоне. Если основанием возьмем 2, получим систему всего с двумя цифрами 0 и 1. К сожалению, в этой системе даже небольшие числа записываются слишком длинно, так 1995 в двоичной системе записывается 199510=111110010112
Система счисления, где 2 является основанием системы называется двоичной системой счисления, относится к машинной системе счисления, к машинным системам счисления относятся и восьмеричная и шестнадцатеричная. Таким образом существуют следующие системы счисления: вавилонская, римская, алфавитные, анатомические, машинные.
Системы счисления делятся также на позиционные и непозиционные.
Перевод из двоичной системы счисления в десятичную.
Как узнать чему равно девятизначное двоичное число N=1111101002
Подпишем сверху каждый разряд
87654321010 — 1 разряды (степени двойки)
1111101002
В двоичной системе особую роль играет двойка и ее степени.
Таким образом:
111110100=1*28 +1*27 +1*26 +1*25 +1*24 +0*23 +1*22 +0*21 +0*20 =1*256+1*128+1*64 +1*32 +1*16 +0*8 +1*4 +0*2 +0*1=256 + 128 + 64 + 32 + 16 + 0 + 4 + 0 +0 =500
Перевод из десятичной системы счисления в двоичную.
Пусть нужно перевести в двоичную систему число 234. Будем делить 234 последовательно на 2 и запоминать остатки, не забывая про нулевые.
Выписав все остатки, начиная с последнего 3 в обратном порядке, получим двоичное разложение числа.
23410 = 111010102
Восьмеричная и шестнадцатеричная системы счисления.
Запись числа в двоичной системе удобна для компьютера, но громоздка для человека. На помощь приходят системы, родственные двоичной восьмеричная система счисления использует 8 цифр: 0,1,2,3,4,5,6,7.
Единица, записанная в самом младшем разряде означает просто единицу (1*8 в нулевой степени), та же единица в следующем разряде обозначает 8 (1*8 в первой степени), в следующем 64 (1*8 во второй степени) и так далее.
2 1 0 1 — разряды (степени восьмерки)
1008 = 1*82 + 0*81 + 0*80 = 1*64 + 0 + 0 = 6410
8 — это 2 в третьей степени. При переводе в восьмеричную систему двоичное число из трех цифр записывается одной цифрой.
Восьмеричная запись | Двоичное представление |
впереди стоящий 0 ничего не значит |
0 | 000 | |
1 | 001 | |
2 | 010 | |
3 | 011 | |
4 | 100 | |
5 | 101 | |
6 | 110 | |
7 | 111 |
Для перевода из двоичной в восьмеричную число, записанное в двоичной системе делим на триады справа налево
Например, 11011100011=11 011 100 011 и заменить каждую группу одной восьмеричной цифрой 2 2 4 2 и получим 22428
Для перевода числа из восьмеричной системы в двоичную достаточно заменить каждую цифру на ее перевод в двоичную систему, представив каждую цифру в виде триады (1 в двоичной системе 1 добавляем до триады впереди 00)
Еще компактней выглядит запись двоичного числа в шестнадцатеричной системе счисления.
Для первых 10 из 16 шестнадцатеричных цифр используются привычные цифры 0 1 2 3 4 5 6 7 8 9, а для остальных используют первые буквы латинского алфавита
A-10 D-13
B-11 E-14
C-12 F-15
Цифра 1 в самом младшем разряде означает 1, в следующем разряде означает 16 (в первой степени), в следующем разряде 16*16 (162)=256, в следующем разряде 1*163 и так далее.
10016 =25610
Цифра F, записанная в самом младшем разряде означает 15 в десятичной системе, F в следующем разряде означает 15*16 в первой степени в десятичной системе и т.д.
2 1 0 — 1 разряды (степени числа 16)
Число 21016=10*162+15*161+0*160
21016=10*256+240+0*1=2560+240+0=280010
2 1 0
BAD16=11*162+1 0*161+13*1 60 = 11 * 256+10 *16+13*1=2816+160+13=298910
16 — это 2 в четвертой степени. При переводе из двоичной системы в шестнадцатеричную число двоичное число из 4-х цифр кодируется числом из одной цифры в шестнадцатеричной системе.
Для перевода числа из шестнадцатеричной системы в двоичную достаточно заменить каждую цифру на ее перевод в двоичную, представив каждую цифру в виде сочетания четырех 1 и 0
A | O | F | AOF16 |
1010 | 0000 | 1111 |
Как осуществить перевод чисел из двоичной системы в шестнадцатеричную? Необходимо разбить число, записанное в двоичной системе на группы по 4 разряда справа налево, заменив каждую группу одной шестнадцатеричной цифрой.
1101 | 1010 | 1101 | в двоичной |
11 | 10 | 13 | в десятичной |
B | A | D | в шестнадцатеричной |
10 | 2 | 8 | 16 |
0 | 000 | 0 | 0 |
1 | 001 | 1 | 1 |
2 | 010 | 2 | 2 |
3 | 011 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
Двоичная восьмеричная шестнадцатеричная системы счисления
Двоичная система счисления
Для представления чисел в микропроцессоре используется двоичная система счисления.
При этом любой цифровой сигнал может иметь два устойчивых состояния: «высокий уровень» и «низкий уровень». В двоичной системе счисления для изображения любого числа используются две цифры, соответственно: 0 и 1. Произвольное число x=anan-1..a1a0,a-1a-2…a-m запишется в двоичной системе счисления как
x = an·2n+an-1·2n-1+…+a1·21+a0·20+a-1·2-1+a-2·2-2+…+a-m·2-m
где ai — двоичные цифры (0 или 1).
Восьмеричная система счисления
В восьмеричной системе счисления базисными цифрами являются цифры от 0 до 7. 8 единиц младшего разряда объединяются в единицу старшего.
Шестнадцатеричная система счисления
В шестнадцатеричной системе счисления базисными цифрами являются цифры от 0 до 15 включительно. Для обозначения базисных цифр больше 9 одним символом кроме арабских цифр 0…9 в шестнадцатеричной системе счисления используются буквы латинского алфавита:
1010 = A16 1210 = C16 1410 = E16
1110 = B16 1310 = D16 1510 = F16.
Например, число 17510 в шестнадцатеричной системе счисления запишется как AF16. Действительно,
10·161+15·160=160+15=175
В таблице представлены числа от 0 до 16 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.
Десятичная | Двоичная | Восьмеричная | Шестнадцатеричная |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
Двоично-восьмеричные и двоично-шестнадцатеричные преобразования
Двоичная система счисления удобна для выполнения арифметических действий аппаратными средствами микропроцессора, но неудобна для восприятия человеком, поскольку требует большого количества разрядов. Поэтому в вычислительной технике помимо двоичной системы счисления широкое применение нашли восьмеричная и шестнадцатеричная системы счисления для более компактного представления чисел.
Три разряда двоичной системы счисления реализуют все возможные комбинации восьмеричных цифр в двоичной системе счисления: от 0 (000) до 7(111). Чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда (триады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от него тоже можно добавить незначащие нули до заполнения всех триад. Затем каждая триада заменяется восьмеричной цифрой.
Пример: Преобразовать число 1101110,012 в восьмеричную систему счисления.
Объединяем двоичные цифры в триады справа налево. Получаем
001 101 110,0102 = 156,28.
Чтобы перевести число из восьмеричной системы в двоичную, нужно каждую восьмеричную цифру записать ее двоичным кодом:
156,28 = 001 101 110,0102.
Четыре разряда двоичной системы счисления реализуют все возможные комбинации шестнадцатеричных цифр в двоичной системе счисления: от 0 (0000) до F(1111). Чтобы преобразовать двоичное число в шестнадцатеричное, нужно объединить двоичные цифры в группы по 4 разряда (тетрады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от нее тоже нужно добавить незначащие нули до заполнения всех тетрад. Затем каждая тетрада заменяется шестнадцатеричной цифрой.
Пример: Преобразовать число 1101110,112 в шестнадцатеричную систему счисления.
Объединяем двоичные цифры в тетрады справа налево. Получаем
0110 1110,11002 = 6E,C16.
Чтобы перевести число из шестнадцатеричной системы в двоичную, нужно каждую шестнадцатеричную цифру записать ее двоичным кодом:
6E,C16 = 0110 1110,11002.
Назад: Представление данных и архитектура ЭВМ
двоичная, восьмеричная, шестнадцатеричная — урок. Информатика, 8 класс.
Для кодирования информации в компьютере вместо привычной десятичной системы счисления используется двоичная система счисления.
Двоичной системой счисления люди начали пользоваться очень давно. Древние племена Австралии и островов Полинезии использовали эту систему в быту. Так, полинезийцы передавали необходимую информацию, выполняя два вида ударов по барабану: звонкий и глухой. Это было примитивное представление двоичной системы счисления.
Двоичной системой счисления называется позиционная система счисления с основанием \(2\).
Алфавит: \(0\) и \(1\).
Для обозначения системы счисления, в которой представляется число, используют нижний индекс, указывающий основание системы. Например, 110112 — число в двоичной системе счисления.
Цифры в двоичном числе являются коэффициентами его представления в виде суммы степеней с основанием \(2\), например:
1012=1
·22+0
·21+1
·20.
Выполнив операции умножения и сложения, получим число в десятичной системе счисления:
1012=4+0+1=5.
Для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на \(2\) до тех пор, пока не получим частное, равное нулю. Исходное число в двоичной системе счисления составляется последовательной записью полученных остатков, начиная с последнего.
Пример:
Переведём десятичное число \(13\) в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:
Получили 1310=11012.
Пример:
Если десятичное число достаточно большое, то более удобен следующий способ записи рассмотренного выше алгоритма:
\(224\) | \(112\) | \(56\) | \(28\) | \(14\) | \(7\) | \(3\) | \(1\) |
\(0\) | \(0\) | \(0\) | \(0\) | \(0\) | \(1\) | \(1\) | \(1\) |
22410=111000002.
Восьмеричной системой счисления называется позиционная система счисления с основанием \(8\).
Алфавит: \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\), \(7\).
Для перевода целого восьмеричного числа в десятичную систему счисления нужно перейти к его развёрнутой записи и вычислить значение получившегося выражения.
Для перевода целого десятичного числа в восьмеричную систему счисления следует последовательно выполнять деление данного числа и получаемых целых частных на 8 до тех пор, пока не получим частное, равное нулю. Исходное число в восьмеричной системе счисления составляется последовательной записью полученных остатков, начиная с последнего.
Пример:
Переведём восьмеричное число 154368 в десятичную систему счисления.
154368=1
·84+5
·83+4
·82+3
·81+6
·80=694210
Пример:
Переведём десятичное число \(94\) в восьмеричную систему счисления.
9410=1368
Шестнадцатеричной системой счисления называется позиционная система счисления с основанием \(16\).
Алфавит: \(0\), \(1\), \(2\), \(3\), \(4\), \(5\), \(6\), \(7\), \(8\), \(9\), A, B, C, D, E, F. Буквы A, B, C, D, E, F имеют значения 1010, 1110, 1210, 1310, 1410, 1510.
Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Для перевода целого десятичного числа в шестнадцатеричную систему счисления следует последовательно выполнять деление данного числа и получаемых целых частных на \(16\) до тех пор, пока не получим частное, равное нулю. Исходное число в системе счисления составляется последовательной записью полученных остатков, начиная с последнего.
Пример:
Переведём шестнадцатеричное число \(2\)\(A7\) в десятичное. В соответствии с вышеуказанными правилом представим его в виде суммы степеней с основанием \(16\):
2A716=2
·162+10
·161+7
·160=512+160+7=679.
Пример:
Переведём десятичное число \(158\) в шестнадцатеричную систему счисления.
15810=9E16.
Для перевода числа из любой позиционной системы счисления в десятичную необходимо использовать развернутую формулу числа, заменяя, если это необходимо, буквенные обозначения соответствующими цифрами.
Для перевода целых чисел десятичной системы счисления в число любой системы счисления последовательно выполняют деление нацело на основание системы счисления, пока не получат нуль. Числа, которые возникают как остаток от деления на основание системы счисления, представляют собой последовательную запись разрядов числа в выбранной системе счисления от младшего разряда к старшему. Поэтому для записи самого числа остатки от деления записывают в обратном порядке.
Системы счисления
Что это такое?
Есть много способов для представления одного и того же числового значения.
В давние времена люди использовали палочки для подсчета. Позднее научились
рисовать палочки на земле и в конечном счете на бумаге. Так что число 5 вначале
представлялось как:
| |
| | | (пять палочек).
Еще позднее римляне начали использовать различные символы для большого количества
палочек:| |
| означало три палочки,
а V
означало пять палочек,
и наконец X использовалось для представления 10-ти палочек!
Использование палочек для счета было хорошей идеей для того времени.
А использование символов вместо реальных палочек было еще лучше.
Одним из наиболее удобных современных способов представления чисел
является десятичная система. Почему? Потому что она использует основное свое
достижение — идею использования символа для подсчета ничего.
Около 1500 лет назад в Индии ноль
(0) был впервые использован как число!
Позднее он был использован на Ближнем Востоке как арабский sifr.
И наконец, представлен на западе как латинский zephiro.
Вскоре вы увидите, какое большое значение имеет эта идея во всех
современных системах счисления.
Десятичная система
Большинство людей сегодня используют десятичное представление числа.
В десятичной системе 10 цифр:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Этими цифрами можно представить любое значение, например:
754.
Значение формируется путем суммирования всех цифр, умноженных на
основание (в нашем случае основание равно 10, т.к.
в десятичной системе 10 цифр) в степени, равной позиции цифры (отсчет ведется с нуля):
Позиция каждой цифры — очень важный фактор!
Например, если вы поместите «7» в конец:
547
то это будет уже другое значение:
Важное замечание: любое число в нулевой степени равно единице,
даже ноль в нулевой степени равен 1:
Двоичная система
Компьютеры не такие умные, как люди (во всяком случае пока).
Легко сделать электронную машину с двумя состояниями: включено
и выключено, или 1 и 0.
Компьютеры используют двоичную систему, которая использует всего две цифры:
0, 1
И поэтому основание в двоичной системе равно 2.
Каждая цифра в двоичном числе называется БИТ, 4 бита — это ПОЛУБАЙТ,
8 битов это БАЙТ, два байта — это СЛОВО, два слова — это
ДВОЙНОЕ СЛОВО (используется редко):
В конец двоичного числа принято добавлять букву «b». Таким образом мы можем
определить, что 101b — это двоичное число, которое соответствует
десятичному значению 5.
Двоичное число 10100101b эквивалентно десятичному
значению 165:
Шестнадцатиричная система
Шестнадцатиричная система использует 16 цифр:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
И поэтому основание в шестнадцатиричной системе равно 16.
Шестнадцатиричные числа являются компактными и легкими для чтения.
Их легко преобразовать в двоичную систему и наборот. Каждый полубайт
(4 бита) можно преобразовать в шестнадцатиричную цифру, пользуясь этой таблицей:
|
Принято в конец шестнадцатиричного числа добавлять букву «h»,
таким образом мы можем определить, что 5Fh — это шестнадцатиричное число,
которому соответствует десятичное значение 95.
Мы также добавляем «0» (ноль) в начало шестнадцатиричного числа,
если оно начинается с буквы (A..F), например 0E120h.
Шестнадцатиричное число 1234h эквивалентно десятичному 4660:
Преобразование значений десятичной системы в другие
Чтобы преобразовать число из десятичной системы в какую-либо другую,
необходимо выполнить целое деление десятичного значения на основание нужной
системы счисления. Получим результат и остаток. Затем будем
делить результат на основание системы, пока результат не будет равен нулю.
Остатки используются для представления значения в новой системе счисления.
Давайте преобразуем число 39 (основание 10) в
шестнадцатиричную систему (основание 16):
Вы видите, что мы получили шестнадцатиричное число 27h.
Все остатки в этом примере меньше 10, поэтому мы не используем буквы.
Здесь приведен пример перевода числа с большим количеством цифр:
Давайте преобразуем десятичное число 43868 в шестнадцатиричную форму:
Результат получаем такой: 0AB5Ch, используя описанную выше таблицу
для преобразования остатков больше 9 в соответствующую букву.
Используя тот же принцип мы можем преобразовать число в двоичную форму
(используя 2 как делитель), или преобразовать шестнадцатиричное число
в двоичное число, используя описанную выше таблицу:
Вы видите, что мы получили следующее двоичное число: 1010101101011100b
Числа со знаком
Нет никакой уверенности в том, каким является шестнадцатиричное число
0FFh — отрицательным или положительным. Оно может быть представлено
двумя десятичными значениями: «255» или «— 1«.
8 бит можно использовать для создания 256 комбинаций (включая ноль),
поэтому мы просто предполагаем, что первые 128 комбинаций (0..127)
будут представлять положительные числа, а следующие 128 комбинаций (128..256)
будут представлять отрицательные числа.
Чтобы получить число «— 5«, мы должны вычесть 5 из
максимально возможного числа комбинаций (256). Так мы получим: 256 — 5 = 251.
Использование этого способа для представления отрицательных чисел имеет
определенный смысл. В математике, если вы прибавите «— 5» к «5«,
вы должны получить ноль.
То же самое случается, когда процессор складывает два байта: 5 и 251.
Результат превышает значение 255, поэтому из-за переполнения
процессор получает ноль!
Когда используется комбинация 128..256, то старший бит всегда равен 1.
Это используется для определения знака.
Тот же самый принцип используется для слов (16-ти битовых значений).
С шестнадцатью битами можно создать 65536 комбинаций, первые 32768 комбинаций (0..32767)
используются для представления положительных чисел, а следующие 32768 комбинаций
(32767..65535) представляют отрицательные числа.
В Emu8086 имеются некоторые удобные инструменты для преобразования
чисел и вычисления любых числовых выражений. Все их можно увидеть,
выбрав пункт меню Math:
Number Convertor — преобразователь чисел позволяет вам преобразовывать
числа из любой системы в любую систему. Просто напечатайте значение
в любом текстовом поле и это значение будет автоматически преобразовано
во все другие системы. Вы можете работать как с 8-ми битовыми, так
и с 16-ти битовыми значениями.
Expression Evaluator — вычисление выражений может быть использовано
для вычислений выражений, в котороых имеются числа, представленные в
различных системах счисления, и преобразования чисел из одной системы в другую.
Напечатайте выражение и нажмите ENTER. Результат появится в выбранной системе счисления.
Вы можете работать со значениями до 32 битов. Если установлен
флажок Signed, то программа будет считать все значения
знаковыми (+ или -), кроме десятичных чисел и двойных слов.
Двойное слово всегда расценивается как знаковое значение, поэтому
0FFFFFFFFh преобразуется в -1.
Например, вы хотите вычислить:
0FFFFh * 10h + 0FFFFh
(максимальное местоположение памяти, доступное процессору 8086).
Если вы установите флажки Signed и Word, вы получите
-17 (потому что выражение будет вычислено
как (-1) * 16 + (-1) . исключающее ИЛИ.
| логическое ИЛИ.
Двоичные числа должны иметь суффикс «b«, например:
00011011b
Шестнадцатиричные числа должны иметь суффикс «h«, и начинаться с нуля
если первая цифра — это буква (A..F), например:
0ABCDh
Восмеричные (основа 8) числа должны иметь суффикс «o«, например:
77o
>>> Следующий урок >>>
Перевод из одной системы счисления в другую
Для перевода чисел из одной системы счисления в другую необходимо владеть основными сведениями о системах счисления и
форме представления чисел в них.
Количество s различных цифр, употребляемых в системе счисления, называется основанием, или базой
системы счисления. В общем случае положительное число X в позиционной системе с основанием s
может быть представлено в виде полинома:
где s — база системы счисления, — цифры,
допустимые в данной системе счисления . Последовательность
образует целую часть X, а последовательность
— дробную часть X.
В вычислительной технике наибольшее применение нашли двоичная (BIN — binary),
и двоично кодированные системы счисления: восьмеричная (OCT — octal), шестнадцатеричная (HEX — hexadecimal) и двоично-кодированная десятичная (BCD — binary coded decimal).
В дальнейшем для обозначения используемой системы счисления число будет заключаться в скобки, а
в индексе указано основание системы. Число X по основанию s будет обозначено
.
Если Вам не нужно углубляться в теорию, а нужно лишь получить результат,
то воспользуйтесь Калькулятором онлайн Перевод целых чисел из десятичной системы счисления
в другие системы.
Основанием системы счисления служит число 2 (s = 2) и для записи чисел используются только
две цифры: 0 и 1. Чтобы представить любой разряд двоичного числа, достаточно иметь физический элемент
с двумя чётко различными устойчивыми состояниями, одно из которых изображает 1, а другое 0.
Прежде чем заняться переводом из любой системы счисления в двоичную, нужно внимательно изучить пример записи числа в двоичной системе счисления:
Если Вам не нужно углубляться в теорию, а нужно лишь получить результат,
то воспользуйтесь Калькулятором онлайн Перевод целых чисел из десятичной системы счисления
в другие системы.
Эти системы счисления относятся к двоично-кодированным, в которых основание системы счисления
представляет собой целую степень двойки: —
для восьмеричной и — для шестнадцатеричной.
В восьмеричной системе счисления(s = 8) используются 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7.
Прежде чем заняться переводом из любой системы счисления в восьмеричную, нужно внимательно изучить пример записи числа в восьмеричной системе:
В шестнадцатеричной системе счисления (s = 16) используются 16 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Пример записи числа в шестнадцатеричной системе:
Широкое применение восьмеричной и шестнадцатеричной систем счисления обусловлено двумя факторами.
Во-первых, эти системы позволяют заменить запись двоичного числа более компактным представлением
(запись числа в восьмеричной и шестнадцатеричной системах будет соответственно в 3 и 4 раза короче двоичной записи этого числа).
Во-вторых, взаимное преобразование чисел между двоичной системой с одной стороны и восьмеричной и шестнадцатиречной — с другой
осуществляется сравнительно просто. Действительно, поскольку для восьмеричного числа каждый разряд представляется
группой из трёх двоичных разрядов (триад), а для шестнадцатеричного — группой из четырёх двоичных разрядов (тетрад),
то для преобразования двоичного числа достаточно объединить его цифры в группы по 3 или 4 разряда соответственно, продвигаясь от
разделительной запятой вправо и влево. При этом, в случае необходимости, добавляют нули слева от целой части
и/или справа от дробной части и каждую такую группу — триаду или тетраду — заменяют эвивалентной восьмеричной или
шестнадцатеричной цифрой (см. таблицу).
Если Вам не нужно углубляться в теорию, а нужно лишь получить результат,
то воспользуйтесь Калькулятором онлайн Перевод целых чисел из десятичной системы счисления
в другие системы.
Соответствие между цифрами в различных системах счисления
DEC | BIN | OCT | HEX | BCD |
0 | 0000 | 0 | 0 | 0000 |
1 | 0001 | 1 | 1 | 0001 |
2 | 0010 | 2 | 2 | 0010 |
3 | 0011 | 3 | 3 | 0011 |
4 | 0100 | 4 | 4 | 0100 |
5 | 0101 | 5 | 5 | 0101 |
6 | 0110 | 6 | 6 | 0110 |
7 | 0111 | 7 | 7 | 0111 |
8 | 1000 | 10 | 8 | 1000 |
9 | 1001 | 11 | 9 | 1001 |
10 | 1010 | 12 | A | 0001 0000 |
11 | 1011 | 13 | B | 0001 0001 |
12 | 1100 | 14 | C | 0001 0010 |
13 | 1101 | 15 | D | 0001 0011 |
14 | 1110 | 16 | E | 0001 0100 |
15 | 1111 | 17 | F | 0001 0101 |
Для обратного перевода каждая OCT или HEX цифра заменяется соответственно триадой или тетрадой
двоичных цифр, причём незначащие нули слева и справа отбрасываются.
Для рассмотренных ранее примеров это выглядит следующим образом:
Если Вам не нужно углубляться в теорию, а нужно лишь получить результат,
то воспользуйтесь Калькулятором онлайн Перевод целых чисел из десятичной системы счисления
в другие системы.
В двоично-десятичной системе вес каждого разряда равен степени 10, как в десятичной системе,
а каждая десятичная цифра кодируется четырьмя двоичными цифрами. Для записи десятичного числа в BCD-системе
достаточно заменить каждую десятичную цифру эквивалентной четырёхразрядной двоичной комбинацией:
Любое десятичное число можно представить в двоично-десятичной записи, но следует помнить, что
это не двоичный эквивалент числа. Это видно из следующего примера:
Пусть X — число в системе счисления с основанием s, которое требуется
представить в системе с основанием h. Удобно различать два случая.
В первом случае
и, следовательно, при переходе к основанию h можно использовать арифметику этой системы. Метод преобразования
состоит в представлении числа в виде
многочлена по степеням s, а также в вычислении этого многочлена по правилам арифметики системы счисления
с основанием h. Так, например, удобно переходить от двоичной или восьмеричной системы счисления к десятичной. Описанный
приём иллюстрируют следующие примеры:
.
.
В обоих случаях арифметические действия выполняются по правилам системы счисления с основанием 10.
Во втором случае ()
удобнее пользоваться арифметикой по основанию s. Здесь следует учитывать, что перевод целых чисел
и правильных дробей производится по различным правилам. При переводе смешанных дробей целая и дробная части
переводятся каждая по своим правилам, после чего полученные числа записываются через запятую.
Перевод целых чисел
Правила перевода целых чисел становится ясным из общей формулы записи числа
в произвольной позиционной системе. Пусть число
в исходной системе счисления s имеет вид .
Требуется получить запись числа в системе счисления с основанием h:
.
Для нахождения значений разделим
этот многочлен на h:
.
Как видно, младший разряд
, то есть , равен первому остатку.
Следующий значащий разряд определяется
делением частного на h:
.
Остальные также
вычисляются путём деления частных до тех пор, пока
не станет равным нулю.
Для перевода целого числа из s-ичной системы счисления в h-ичную
необходимо последовательно делить это число и получаемые частные на h (по правилам системы счисления с основанием h)
до тех пор, пока частное не станет равным нулю. Старшей цифрой в записи числа с основанием h служит
последний остаток, а следующие за ней цифры образуют остатки от предшествующих делений, выписываемые в
последовательности, обратной их получению.
Пример 1. Перевести число 75 из десятичной системы счисления
в двоичную, восьмеричную и шестнадцатеричную системы.
Решение:
Если Вам не нужно углубляться в теорию, а нужно лишь получить результат,
то воспользуйтесь Калькулятором онлайн Перевод целых чисел из десятичной системы счисления
в другие системы.
Перевод правильных дробей
Правильную дробь ,
имеющую в системе с основанием s вид ,
можно выразить в системе счисления с основанием h как многочлен вида
Старшая цифра может быть
найдена умножением этого многочлена на h, т.е.
Если это произведение меньше 1, то цифра равна 0,
если же оно больше или равно 1, то цифра равна
целой части произведения. Следующая цифра справа
определяется путём умножения дробной части указанного выше произведения на h и выделения
его целой части и т.д. Процесс может оказаться бесконечным, т.к. не всегда можно представить дробь
по основанию h конечным набором цифр.
Для перевода правильной дроби из системы счисления
с основанием s в систему счисления с основанием h нужно умножать исходную дробь и дробные части
получающихся произведений на основание h (по правилам «старой» s-системы счисления). Целые части полученных
произведений дают последовательность цифр дроби в h-системе счисления.
Описанная процедура продолжается до тех пор, пока дробная часть очередного произведения
не станет равной нулю либо не будет достигнута требуемая точность изображения числа X в
h-ичной системе счисления. Представлением дробной части числа X в новой системе счисления
будет последовательности целых частей полученных произведений, записанных в порядке их получения и
изображённых h-ичной цифрой. Абсолютная погрешность перевода числа X при p
знаков после запятой равняется .
Пример 2. Перевести правильную дробь 0,453 из десятичной системы счисления
в двоичную, восьмеричную и шестнадцатеричную системы счисления.
* В двоичную систему:
Ответ:
** В восьмеричную систему:
Ответ:
*** В шестнадцатеричную систему:
Ответ: так как , то
Поделиться с друзьями
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16). Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Числовых символов, представляющих значения больше девяти, нет, поэтому используются буквы английского алфавита, в частности A, B, C, D, E и F.Шестнадцатеричный A = десятичный 10, а шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему счисления. Вероятно, это потому, что у людей на руках десять пальцев. Однако у компьютеров есть только включение и выключение, называемое двоичной цифрой (или для краткости битом). Двоичное число — это просто строка из нулей и единиц: например, 11011011. Для удобства инженеры, работающие с компьютерами, обычно группируют биты вместе. Раньше, например, в 1960-е, они группировали по 3 бита за раз (подобно тому, как большие десятичные числа сгруппированы по тройкам, например, 123 456 789).Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7. Это называется восьмеричным.
По мере того, как компьютеры становились больше, было удобнее группировать биты по четыре вместо трех. Это удваивает числа, которые будет представлять символ; он может иметь 16 значений вместо восьми. Hex = 6 и Decimal = 10, поэтому он называется шестнадцатеричным. На компьютерном жаргоне четыре бита составляют полубайт (иногда пишется полубайт ).Полубайт — это одна шестнадцатеричная цифра, записанная с использованием символа 0-9 или A-F. Два полубайта составляют байт (8 бит). В большинстве компьютерных операций используется байт или кратное байту (16 бит, 24, 32, 64 и т. Д.). Шестнадцатеричный код упрощает запись этих больших двоичных чисел.
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричной системе счисления.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления.В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это позиция , единица, , следующая цифра слева — это позиция , десятки, , следующая — позиция , сотня, и т. Д. В шестнадцатеричной системе каждая цифра может иметь 16 значений. , а не 10. Это означает, что у цифр — это место , у — шестнадцать — место , а следующая — это 256 — это место .Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичный 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с наименее значащей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмите вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг до тех пор, пока цифры не исчезнут.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16).Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Числовых символов, представляющих значения больше девяти, нет, поэтому используются буквы, взятые из английского алфавита, в частности A, B, C, D, E и F. Шестнадцатеричный A = десятичный 10 и шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему счисления. Вероятно, это потому, что у людей на руках десять пальцев. Однако у компьютеров есть только включение и выключение, называемое двоичной цифрой (или для краткости битом).Двоичное число — это просто строка из нулей и единиц: например, 11011011. Для удобства инженеры, работающие с компьютерами, обычно группируют биты вместе. Раньше, например, в 1960-е, они группировали по 3 бита за раз (подобно тому, как большие десятичные числа сгруппированы по тройкам, например, 123 456 789). Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7. Это называется восьмеричным.
По мере того, как компьютеры становились больше, было удобнее группировать биты по четыре вместо трех.Это удваивает числа, которые будет представлять символ; он может иметь 16 значений вместо восьми. Hex = 6 и Decimal = 10, поэтому он называется шестнадцатеричным. На компьютерном жаргоне четыре бита составляют полубайт (иногда пишется полубайт ). Полубайт — это одна шестнадцатеричная цифра, записанная с использованием символа 0-9 или A-F. Два полубайта составляют байт (8 бит). В большинстве компьютерных операций используется байт или кратное байту (16 бит, 24, 32, 64 и т. Д.). Шестнадцатеричный код упрощает запись этих больших двоичных чисел.
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричной системе счисления.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это позиция , единица, , следующая цифра слева — это позиция , десятки, , следующая — позиция , сотня, и т. Д. В шестнадцатеричной системе каждая цифра может иметь 16 значений. , а не 10. Это означает, что у цифр — это место , у — шестнадцать — место , а следующая — это 256 — это место . Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичный 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с наименее значащей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмите вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг до тех пор, пока цифры не исчезнут.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16).Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Числовых символов, представляющих значения больше девяти, нет, поэтому используются буквы, взятые из английского алфавита, в частности A, B, C, D, E и F. Шестнадцатеричный A = десятичный 10 и шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему счисления. Вероятно, это потому, что у людей на руках десять пальцев. Однако у компьютеров есть только включение и выключение, называемое двоичной цифрой (или для краткости битом).Двоичное число — это просто строка из нулей и единиц: например, 11011011. Для удобства инженеры, работающие с компьютерами, обычно группируют биты вместе. Раньше, например, в 1960-е, они группировали по 3 бита за раз (подобно тому, как большие десятичные числа сгруппированы по тройкам, например, 123 456 789). Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7. Это называется восьмеричным.
По мере того, как компьютеры становились больше, было удобнее группировать биты по четыре вместо трех.Это удваивает числа, которые будет представлять символ; он может иметь 16 значений вместо восьми. Hex = 6 и Decimal = 10, поэтому он называется шестнадцатеричным. На компьютерном жаргоне четыре бита составляют полубайт (иногда пишется полубайт ). Полубайт — это одна шестнадцатеричная цифра, записанная с использованием символа 0-9 или A-F. Два полубайта составляют байт (8 бит). В большинстве компьютерных операций используется байт или кратное байту (16 бит, 24, 32, 64 и т. Д.). Шестнадцатеричный код упрощает запись этих больших двоичных чисел.
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричной системе счисления.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это позиция , единица, , следующая цифра слева — это позиция , десятки, , следующая — позиция , сотня, и т. Д. В шестнадцатеричной системе каждая цифра может иметь 16 значений. , а не 10. Это означает, что у цифр — это место , у — шестнадцать — место , а следующая — это 256 — это место . Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичный 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с наименее значащей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмите вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг до тех пор, пока цифры не исчезнут.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Шестнадцатеричный — обзор | Темы ScienceDirect
10.4.4 Описание приложений DIZI
Еще восемь приложений указаны ниже, и исходный код каждого из них указан в программе 10.4. Их можно загрузить с сайта www.picmicros.org.uk и протестировать в режиме моделирования в MPSIM или ISIS (если доступно). Если оборудование DIZI сконструировано, оно может быть запрограммировано в микросхему 16F84A с помощью внешнего программатора.
Программы 10.4. 8 приложений DIZI.
HEX1 Hex Converter
Отображается шестнадцатеричное число, соответствующее двоичной настройке входов DIP-переключателя.Входные переключатели выбирают из таблицы 16 семисегментных кодов, которые управляют дисплеем в требуемом шаблоне для каждой шестнадцатеричной цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d и E. Обратите внимание, что числа B и D отображаются в нижнем регистре, чтобы их можно было отличить от 8 и 0 соответственно.
Отображение сообщений MESS1
Последовательность символов отображается в течение примерно 0,5 с каждый. Большинство букв алфавита можно получить на семисегментном дисплее в верхнем или нижнем регистре, например «ПРИВЕТ».Количество символов должно быть установлено в счетчике или используется символ завершения.
SEC1 Счетчик секунд
Отображается вывод, который ведет обратный отсчет ровно один раз в секунду, от 0 до 9, а затем повторяется. Таблица кодов дисплея требуется, как и в приложении Hex Converter. Задержка в 1 с может быть достигнута с помощью аппаратного таймера (глава 6) и резервного регистра. На аудиовыходе можно было поставить галочку, пульсируя динамик на каждом шаге.
Таймер реакции REACT1
Время реакции пользователя проверяется путем генерации случайной задержки от 1 до 10 с, выдачи звукового сигнала и отсчета времени задержки до нажатия кнопки ввода.Число, представляющее время между звуком и входом, кратное 100 мс, должно отображаться как число 0–9, что дает максимальное время реакции 900 мс.
GEN1 AF Generator
Генератор звуковой частоты выдает частоты в диапазоне от 20 Гц до 20 кГц. Выход сирены переключается с задержкой между каждой операцией, определяемой требуемой частотой, как в программе BUZZ1. Например, для частоты 1 кГц требуется задержка в 1 мс, что составляет 1000 циклов команд при времени цикла 1 мкс.Информация о синхронизации программы должна быть изучена в главе 6. Время задержки и, следовательно, частота, затем могут быть увеличены с помощью кнопки ввода, и может быть включен выбор диапазона с помощью входных переключателей, поскольку при использовании доступно только 255 шагов. 8-битный регистр в качестве счетчика периодов.
MET1 Метроном
Звуковой импульс выводится со скоростью, установленной DIP-переключателями или кнопками ввода. Такт вывода можно регулировать, скажем, от 1 до 4 ударов в секунду, используя кнопку прерывания для увеличения или уменьшения скорости и кнопку ввода для выбора увеличения или уменьшения.Программный цикл или регистр TMR0 могут использоваться для обеспечения необходимых временных задержек.
BELL1 Дверной звонок
Мелодия воспроизводится при нажатии кнопки ввода с использованием таблицы поиска по программе для частоты и продолжительности тона. Каждый тон должен воспроизводиться в течение подходящего времени или количества циклов, как того требует мелодия. Программа может быть разработана путем выбора мелодии с помощью DIP-переключателей и отображения номера выбранной мелодии.
GIT1 Guitar Tuner
Программа позволит пользователю пошагово переключать частоты для настройки струн гитары или другого музыкального инструмента с помощью кнопки ввода или выбора тембра с помощью DIP-переключателей.Программа может быть расширена путем отображения номера настраиваемой струны. Частоты тона будут генерироваться как для приложения дверного звонка. Коды цифрового дисплея также потребуются в таблице.
Вопросы 10
- 1.
Назовите одно преимущество и один недостаток: (а) макетной платы; (б) картон; (c) моделирование для тестирования прототипов. (6)
- 2.
Укажите выходной двоичный код для: (a) выключения всех сегментов и (b) отображения цифры «2» на общем катодном семисегментном светодиодном дисплее, предполагая соединения, показанные на рисунке 10. .15. (4)
- 3.
Обрисуйте алгоритм для генерации выходного сигнала фиксированной частоты приблизительно 1 кГц от платы DIZI с использованием аппаратного таймера. (5)
- 4.
Нарисуйте блок-схему, представляющую процесс генерации «случайной» задержки между нажатием кнопки и включением выходного светодиода. (5)
Ответы на странице 423. (Всего 20 баллов)
Задания 10
- 1.
Создайте схему DIZI на макетной плате, стрип-плате или печатной плате и протестируйте программы BUZZ1, DICE1 и SCALE1.
- 2.
Подтвердите расчетом или моделированием, что значения, используемые в таблице данных программы в SCALE1.ASM, дадут требуемые задержки.
- 3.
Разработайте макет для схемы BIN, показанной на рисунке 3.3. Соберите схему и протестируйте программы BINx.
- 4.
Разработайте и внедрите одну из программ, описанных для оборудования DIZI, и сравните свое решение с модельными программами, предоставленными для HEX1, MESS1, SEC1, REACT1, GEN1, MET1, BELL1 или GIT1.
- 5.
- (a)
Изучите, как можно обнаружить ввод с цифровой клавиатуры. См. Главу 1, раздел 1.4.1. Типичная клавиатура, показанная на рис. 10.17, имеет 12 клавиш в четырех рядах по три: 1, 2, 3; 4, 5, 6; 7, 8, 9; * , 0, #. Они подключены к семи терминалам и могут сканироваться по строкам и столбцам. Нажатие клавиши определяется как соединение между строкой и столбцом. Подтягивающие резисторы гарантируют, что по умолчанию на всех линиях будет установлена логическая «1».Если «0» применен к одному из выводов столбца (C1, C2, C3) и нажата клавиша, этот «0» может быть обнаружен на выводе строки (R1, R2, R3, R4). Если терминалы клавиатуры подключены к порту PIC и выход «0» поочередно к трем столбцам, ключ может быть обнаружен как комбинация выбранного столбца и обнаруженной строки. Терминалы столбцов могут быть установлены как выходы, а строки как входы. Нарисуйте блок-схему, чтобы представить процесс преобразования каждого десятичного ключа в соответствующий номер BCD.
Рисунок 10.17. Соединения клавиатуры
- (b)
Функция блокировки может быть реализована путем сопоставления входной последовательности с сохраненной последовательностью, скажем, из четырех цифр и включения выхода на соленоид двери, если обнаружено совпадение. Укажите оборудование и наметьте программу для приложения блокировки.
- (c)
Спроектируйте, соберите и протестируйте систему электронного замка с помощью показанной клавиатуры, подходящего PIC и светодиода для индикации состояния замка (ВКЛ = разблокирован).Изучите конструкцию интерфейса для дверного замка с соленоидным приводом.
Примечание: Сканирование клавиатуры используется в программе 13.1, а приложение блокировки описано в Приложении D.
шестнадцатеричных чисел
шестнадцатеричных чисел
Шестнадцатеричная система счисления
Шестнадцатеричная система счисления (с основанием 16) работает так же, как и десятичная.
(основание 10) система счисления, за исключением того, что она основана на шестнадцати вместо десяти. В
Работа в десятичной системе счисления знакома.
4-значное число 5826 с основанием 10 отображается ниже, указывая, как значение
числа получается из значений его 4-х цифр.
Всем известно, что 5826 означает пять тысяч восемьсот двадцать шесть. Но
только потому, что их учили, что 1, 10, 100 и 1000 являются частью
вычисление , хотя они никогда не записываются как . Все это на самом деле
написано всего двадцать один (5 и 8 и 2 и 6).Только интерпретация
что люди поставляют, что является чисто умственным и неписаным, информирует о том, что
написано с предполагаемым значением.
Шестнадцатеричный действует точно так же. Каждая цифра «взвешивается»
«множитель», когда все результаты складываются вместе. Множители в
обе системы являются степенями системной базы (10 или 16). Степени 10 равны
1, 10, 100, 1000 и т. Д., А 16 — 1, 16, 256, 4096 и т. Д. То же самое
цифры «5826», используемые в базе 16, представляют собой значение, рассчитываемое следующим образом:
Хотя цифры одинаковые (5826), значения получаются совершенно разными,
потому что база и ее «значения множителя» разные.
Вы увидите шестнадцатеричные числа, некоторые цифры которых являются буквами, а не
числа. Это потому, что количество цифр, необходимых для любой системы счисления, является
база номера. Итак, для базы 2 нужны 2 цифры, для базы 10 — 10, а для базы
16 потребностей 16. База 2 имеет 0 и 1. База 10 содержит от 0 до 9. База 16 заимствует 0
хоть 9, но нужно еще 6. Для них можно было бы придумать какие-нибудь символы. Тем не мение,
для удобства мы используем первые 6 букв алфавита (от A до F)
вместо.Когда у нас заканчиваются цифры в 9, мы используем A в качестве следующей цифры. Итак, А
представляет значение 10. Далее идет B и представляет 11. Шестнадцатеричные цифры
и значение, которое они обозначают:
Шестнадцатеричная цифра | Значение |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
А | 10 |
B | 11 |
С | 12 |
Д | 13 |
E | 14 |
ф | 15 |
Вот вывод значения другого 4-значного шестнадцатеричного числа, но
здесь используются некоторые из старших цифр A-F:
Наибольшее число, которое вы можете посчитать с заданным количеством цифр (в любом количестве
система) — это число, в котором каждая цифра содержит максимальное значение в
система счисления (1 по основанию 2, 9 по основанию 10 или F по основанию 16).Так что самый большой
число, которое вы можете представить четырьмя цифрами в базе 16:
Для подсчета выше указанного потребовалось бы использовать больше цифр. В
самое следующее число — 10000 в шестнадцатеричном формате или 65536 в десятичном. Это
широко известное значение в информатике и называется «64К».
Основания чисел: восьмеричные и шестнадцатеричные
Purplemath
восьмеричное
Старая компьютерная система счисления — восьмеричная или восьмеричная.Цифры в восьмеричной математике: 0, 1, 2, 3, 4, 5, 6 и 7. Значение «восемь» записывается как «1 восемь и 0 единиц», или 10 8 .
С технической точки зрения существует очень много различных компьютерных протоколов для восьмеричного числа, но мы будем использовать простую математическую систему.
MathHelp.com
Несколько племен Нового Света использовали систему счисления по основанию 8; они считали, используя восемь промежутков между пальцами, а не сами десять пальцев. Синие туземцы в фильме «Аватар» использовали восьмеричное число, потому что на их руках было всего четыре пальца.
Давайте копаем прямо:
Преобразует 357
10 в соответствующее восьмеричное число.
Я сделаю обычное последовательное деление, на этот раз делю на 8 на каждом шаге:
Как только я добрался до «5» сверху, мне пришлось остановиться, потому что 8 не делится на 5.
Тогда соответствующее восьмеричное число будет 545 8 .
Преобразует 545
8 в соответствующее десятичное число.
Я буду следовать обычной процедуре, перечисляя цифры в одной строке, а затем отсчитывая цифры справа в следующей строке, начиная с нуля:
Затем сделаю обычное сложение и умножение:
5 × 8 2 + 4 × 8 1 + 5 × 8 0
= 5 × 64 + 4 × 8 + 5 × 1
= 320 + 32 + 5
= 357
Тогда соответствующее десятичное число будет 357 10 .
Шестнадцатеричный
Если вы работаете с компьютерным программированием или компьютерной инженерией (или компьютерной графикой, о которой мы поговорим позже), вы столкнетесь с основанием шестнадцати, или шестнадцатеричной, математикой.
Как упоминалось ранее, десятичная математика не имеет одной единственной цифры, представляющей значение «десять». Вместо этого мы используем две цифры, 1 и 0: «10».Но в шестнадцатеричной математике столбцы означают число, кратное шестнадцати! То есть в первом столбце указано, сколько у вас единиц, во втором столбце указано количество шестнадцати, в третьем столбце указано, сколько двести пятьдесят шесть (шестнадцать раз по шестнадцать) и так далее.
В базе десять у нас были цифры от 0 до 9. В базе восемь у нас были цифры от 0 до 7. В базе 4 у нас были цифры от 0 до 3. В любой базовой системе у вас будут цифры от 0 до единицы меньше чем -ваша-база.Это означает, что в шестнадцатеричном формате нам нужны «цифры» от 0 до 15. Для этого нам понадобятся одиночные цифры, обозначающие значения «десять», «одиннадцать», «двенадцать», «тринадцать», «четырнадцать» и «пятнадцать». Но мы этого не делаем. Поэтому вместо этого мы используем буквы. То есть, считая в шестнадцатеричном формате, шестнадцать «цифр» равны:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Другими словами, A — это «десять» в «обычных» числах, B — «одиннадцать», C — «двенадцать», D — «тринадцать», E — «четырнадцать» и «F» — пятнадцать.Именно это использование букв для цифр делает шестнадцатеричные числа поначалу такими странными. Но преобразования работают обычным образом.
Преобразует 357
10 в соответствующее шестнадцатеричное число.
Здесь я буду делить несколько раз на 16, отслеживая остатки по ходу дела. (Вы можете использовать для этого бумагу для заметок.)
Считывая цифры, начиная сверху и заканчивая правой стороной, я вижу, что:
Преобразует 165
16 в соответствующее десятичное число.
Перечислите цифры и отсчитайте их справа, начиная с нуля:
Помните, что каждая цифра в шестнадцатеричном числе представляет, сколько копий вам нужно от этой степени шестнадцати, и преобразуйте это число в десятичное:
1 × 16 2 + 6 × 16 1 + 5 × 16 0
= 1 × 256 + 6 × 16 + 5 × 1
= 256 + 96 + 5
= 357
Тогда 165 16 = 357 10 .
Преобразует 63933
10 в соответствующее шестнадцатеричное число.
Я буду делить несколько раз на 16, отслеживая остатки:
Из последовательного деления, приведенного выше, я вижу, что шестнадцатеричное число будет иметь «пятнадцать» в столбце с шестнадцатью квадратами, «девять» в столбце с шестнадцатью квадратами, «одиннадцать» в столбце с шестнадцатью квадратами и « тринадцать дюймов в колонке единиц.Но я не могу записать шестнадцатеричное число как «15
Тогда 63933 10 = F9BD 16 .
Преобразование F9BD в десятичную систему счисления.
Я перечислю цифры и отсчитаю их справа, начиная с нуля:
На самом деле, вероятно, будет полезно повторить это, преобразовав буквенные шестнадцатеричные «цифры» в соответствующие им «обычные» десятичные значения:
Теперь сделаю умножение и сложение:
15 × 16 3 + 9 × 16 2 + 11 × 16 1 + 13 × 16 0
= 15 × 4096 + 9 × 256 + 11 × 16 + 13 × 1
= 61440 + 2304 + 176 + 13
= 63933
Как и ожидалось, F9BD 16 = 63933 10 .
Компьютерная графика
Если вы работаете с веб-страницами и графическими программами, вам может быть полезно преобразовать значения RGB (для изображения в графической программе) в шестнадцатеричные значения (для соответствующего цвета фона на веб-странице).
Графические программы работают со значениями RGB (красный-зеленый-синий) для цветов. Каждый из этих компонентов данного цвета имеет значения от 0 до 255.Эти значения могут быть преобразованы в шестнадцатеричные значения от 00 до FF. Если вы перечислите компоненты RGB цвета в виде строки из трех чисел, вы можете получить, скажем, R: 204, G: 51, B: 255, что переводится в светло-пурпурный # CC33FF в кодировке HTML. Обратите внимание, что 204 10 = CC 16 , 51 10 = 33 16 и 255 10 = FF 16 .
Партнер
С другой стороны, если у вас есть код для # 9, это будет преобразовано в темно-красноватый R: 153, G: 0, B: 51 в вашей графической программе.То есть, чтобы преобразовать вашу графическую программу в кодировку веб-страницы, используйте шестнадцатеричное число не как одно шестизначное число, а как три двузначных числа, и преобразуйте эти пары цифр в соответствующие значения RGB.
Для обсуждения истории «безопасных для Интернета» цветов, в том числе того, почему они включают только шестнадцатеричные эквиваленты 0, 51, 102, 153, 204 и 255, смотрите здесь. Для демонстрации различных цветов текста и фона в HTML посмотрите здесь.
URL: https://www.purplemath.com/modules/numbbase3.htm
// текущее решение адаптировано из: https://gist.github.com/getify/e5ed084f122d73ac375b#gistcomment-1621271 | |
// | |
// Проблема: | |
// | |
// дан поток «шестнадцатеричных цифр» из PI, как в 0.243F6A8885A308D31319 …, | |
// преобразование потока цифра за цифрой в десятичные цифры с основанием 10, как в: | |
// 0,1415 | |
// | |
// Осложнения: | |
// из-за точности с плавающей запятой текущее решение ниже | |
// не работает точно после 23 цифр и не работает с NaN | |
// более 308 цифр. | |
// | |
// Это нужно сделать так, чтобы не было произвольного увеличения | |
// точность с плавающей запятой … возможно, используя «целочисленную математику» вместо | |
// математика «с плавающей запятой»? | |
// | |
// Также по причинам памяти мы не можем сохранить весь список предыдущих цифр, | |
// по мере того, как он становится произвольно большим.Выкладывать нужно по цифре. | |
// | |
// ПРИМЕЧАНИЕ: из-за переполнения известно, что вам придется преобразовать все | |
// цифры по порядку, так что переполнение каждой цифры переносится на следующую. IOW, | |
// вы не можете пропустить, преобразовав позиции 2, 8, а затем 13; у вас будет | |
// преобразовать позиции 0-12 перед преобразованием позиции 13. | |
var overflow = 0; | |
функция hexDigitToDec (hexDigit, position) { | |
var dec = parseInt (hexDigit, 16) / Math.pow (16, позиция) * Math.pow (10, позиция); | |
уб. = Уб. + Переполнение; | |
var целое = Math.пол (уб); | |
переполнение = (dec% 1) * 10; | |
вернуть целиком; | |
} | |
hexDigitToDec («2», 0); // 1 | |
hexDigitToDec («4», 1); // 4 | |
hexDigitToDec («3», 2); // 1 | |
hexDigitToDec («F», 3); // 5 | |
hexDigitToDec («6», 4); // 9 | |
hexDigitToDec («А», 5); // 2 | |
hexDigitToDec («8», 6); // 6 | |
hexDigitToDec («8», 7); // 5 | |
hexDigitToDec («8», 8); // 3 | |
//. |