Перевод из одной системы счисления в другую

Как следует из изложенного, перевод в десятичную систему любых форматов не представляет сложности и при надлежащей тренировке может осуществляться даже в уме. Для того чтобы быстро переводить в десятичную систему двоичные и шестнадцатеричные числа, следует выучить наизусть таблицу степеней двойки до 16 (табл. 14.3) и представления некоторых чисел в двоичной и шестнадцатеричной формах (табл. 14.4).

 

 

 

 

Буква h добавляется к шестнадцатеричному представлению числа, чтобы отличить его от десятичного, не используя индекса 16 (в разных языках программирования есть и другие способы, см. далее). На первое время достаточно запомнить только маленькие числа, а для образования двоичных и шестнадцатеричных чисел понять принцип, остальное выучится позже само.

Из табл. 14.4 видно, что из двоичной в шестнадцатеричную системы и обратно переводить совсем просто. Двоичное число достаточно разбить на тетрады (т. е. группы из 4‑х цифр) и перевести каждую в отдельности. Например, число 5910, т. е. 0011 10112, будет равно 3Bh. Еще проще обратный перевод – каждое шестнадцатеричное число заменяется группой из 4‑х двоичных цифр. Соответственно, число A2FC16выразится так: 1010 0010 1111 11002. Заметьте, что пробелы между тетрадами в двоичных числах введены просто для удобства восприятия, подобно пробелам между тройками разрядов (классами) в записи больших десятичных чисел, и никакой иной нагрузки не несут. При записи двоичных чисел в тексте программ, как ассемблерных, так и программ на языках высокого уровня, естественно, эти пробелы ставить запрещается. Обычно при этом для удобства ведущие нули нередко не опускаются (хотя в табл. 14.4 они и опущены) – число 15 чаще всего записывается в виде 0Fh. Почему так удобнее, вы поймете далее.

* * *

 

Заметки на полях

Почему в табл. 14.4 приведены именно эти числа? Числа, на единицу меньшие степени двойки, имеют в электронике и в программировании большое значение. Если вы посмотрите в таблицу внимательно, то увидите, что наибольшее число с количеством разрядов, равным степени двойки, содержит единицы во всех разрядах, т. е. как раз и равно этой степени минус единица. При этом количество всех чисел с таким количеством разрядов равно степени двойки. Другими словами, память, содержащая ровно 256 (28) ячеек, будет иметь номер (адрес) последней ячейки, равный 255, или FFh. Наибольшее число, до которого может досчитать 8‑разрядный двоичный счетчик, также равно FFh, поскольку если подать на него еще один импульс (257‑й по счету), он обнулится, ибо 9‑го разряда, где могла бы записаться старшая единица, у него не существует. Потому с такими числами приходится иметь дело очень часто, даже чаще, чем с собственно степенями двойки.

 

* * *

Сложнее переводить из десятичной системы, и для этого в учебниках рекомендуется устрашающая процедура, основанная на делении столбиком (см., например [17]). Я сейчас попробую вам показать модификацию этого способа, который позволяет переводить числа в двоичную систему несколько более простым методом, причем небольшие числа можно переводить даже в уме.

Для начала запомним, что разряды двоичного числа нумеруются с нуля – т. е., к примеру, разряд номер 3 окажется четвертым справа. Теперь пусть мы имеем, например, десятичное число 59. Подбираем наибольшую степень двойки из табл. 14.3, не превышающую этого числа: 32, что есть 5‑я степень. Ставим 1 в 5‑м разряде: 100000. Вычитаем подобранную степень из исходного числа (59–32 = 27) и подбираем для остатка также степень, его не превышающую: 16 (24). Ставим единицу в 4‑м разряде: 110000. Повторяем процедуру вычитания‑подбора: 27–16 = 11, степень равна 8 (23), ставим единицу в 3‑м разряде: 111000. Еще раз: 11 – 8 = 3, степень равна 2 (21), так что 2‑й разряд оказался пропущен, ставим в нем ноль, а единицу во 1‑м разряде: 111010. Последнее вычитание дает 1, которую и ставим в младший (нулевой) разряд, окончательно получив 5910= 1110112.

 

 

Байты

Слово «байт» (byte ) представляет собой сокращение от B inarY digiT E ight – «восемь двоичных цифр». Другими словами, байт – это просто восьмиразрядное двоичное число. Соответственно, он имеет ровно два шестнадцатеричных разряда, или две двоичных тетрады. Такой байт был введен фирмой IBM в конце 50‑х годов прошлого века, до этого (а в СССР – и после этого, вплоть до 1969 года) применялись байты с другим количеством разрядов: 5, 6 и 7.

Почему именно 8 разрядов? Да просто потому, что так удобно – число кратно степени двойки, т. е. легко масштабируется. Скажем, шестнадцатиразрядное число – просто два байта, записанные подряд, подобно тетрадам в самом байте. В то же время число в 8 разрядов – относительно невелико и одновременно достаточно емко: имеет 256 значений, которых с лихвой хватает, к примеру, для представления всех печатных знаков европейских алфавитов. Поэтому в настоящее время байт – общепринятая единица измерения информации, т. к. основную единицу – бит – на практике применять неудобно из‑за ее мелковатости, числа получаются слишком большими. Применяют и меньшие единицы: кроме бита, это полубайт, или тетрада – одно шестнадцатеричное число.

Для современной электронной техники характерны большие, чем байт, числа – двухбайтовые (65 536 значений), четырехбайтовые (32 двоичных разряда или 4 294 967 296 значений) и даже восьмибайтовые числа. Все они часто называются словами: «word ». Так, в памяти современных персональных компьютеров минимальная ячейка памяти содержит 32 бита (или 4 байта), хотя измеряют объем памяти все равно в традиционных байтах.

* * *

 








Дата добавления: 2016-05-11; просмотров: 3686;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.