Чтение онлайн

на главную - закладки

Жанры

Освой самостоятельно С++ за 21 день.

Либерти Джесс

Шрифт:

Иногда числа представляют собой команды, иногда — значения, а иногда — структурные элементы кода. Одним из стандартизованных наборов кодов является ASCII. В нем каждая буква или знак препинания имеет 7-разрядное двоичное представление. Например, строчная буква "а" представляется двоичным числом 0110 0001. Хотя это значение можно преобразовать в десятичное число 97 (64 + 32 + 1), следует понимать, что это не цифра, а буква. Поэтому иногда говорят, что буква "а" в ASClI представлена числом 97, хотя на самом деле двоичное

представление десятичного числа 97 (0110 0001) является кодом буквы "а".

Шестнадцатерична система счисления

Поскольку двоичная система громоздка и трудна для понимания, для упрощения манипулирования с данными было бы полезно иметь возможность быстро и динамично приводить двоичные значения к числам с большим основанием. Оказалось, что преобразовывать двоичные значения к числам шестнадцатеричной системы счисления намного проще и быстрее, чем к десятичным числам. Почему? Давайте сначала рассмотрим, что представляют собой шестнадцатеричные числа.

Для представления шестнадцатеричных чисел используется 16 символов: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, E и F. Как видите, последние шесть символов — не цифры, а буквы. Буквы A—F выбраны произвольно, просто как первые буквы латинского алфавита. Вот чему равны граничные значения в шестнадцатеричной системе счисления:

4 3 2 1

16^3 16^2 16^1 16^0

4096 256 16 1

При переводе шестнадцатеричного числа в десятичное можно использовать описанную выше схему (вычислить сумму произведений цифр числа на граничные значения соответствующих порядков). Возьмем, например, число F8C:

F * 256 = 15 * 256 = 3840

8 * 16 = 128

С * 1 = 12 * 1 = 12

3840 + 128 + 1 = 3980

Перевод числа FC в двоичное число лучше всего делать путем первоначального перевода в десятичное, а затем уже в двоичное:

F * 16 = 15 * 16 = 240

С * 1 = 12 * 1 = 12

240 + 12 = 252

Преобразование числа 252(10) в двоичное представление показано в следующей таблице:

Разряд 9 8 7 6 5 4 3 2 1

Степень 2^8 2^7 2^6 2^5 2^4 2 2 2 2

Значение 256 128 64 32 16 8 4 2 1

256 не укладывается ни разу.

1 раз 128 остаток 124

1 раз 64 остаток 60

1 раз 32 остаток 28

1 раз 16 остаток 12

1 раз 8 остаток 4

1 раз 4 остаток 0

0 раз 2

0 раз 1

1 1 1 1 1 1 0 0

Таким образом, мы получили двоичное число 1111 1100.

Теперь оказывается, что, представив это число как два набора, состоящих из четырех цифр, мы можем сделать одно магическое превращение.

Правый набор представляет собой число 1100. В десятичном выражении это число 12, а в шестнадцатеричном — число С.

Левый набор имеет вид 1111, который по основанию 10 представляется как число 15, а по основанию 16 — как число F. Итак, мы

получили следующее:

1111 0000

F С

Расположив два шестнадцатеричных числа вместе, псшучаем число FC, которое равно настоящему значению 1111 1100. Этот быстрый метод преобразования работает всегда безотказно. Вы можете взять любое двоичное число любой длины, разбить его на группы по четыре разряда, перевести каждую группу в шестнадцатеричную цифру и расположить эти цифры вместе, чтобы получить шестнадцатеричное число. Вот другой пример:

1011 0001 1101 0111

Напомню, что в двоичной системе используются следующие граничные значения порядков: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 и 32768.

1 X 1 = 1

1 x 2 = 2

1 X 4 = 4

0 x 8 = 0

1 x 16 = 16

1 x 32 = 0

1 x 64 = 64

1 x 128 = 128

1 x 256 = 256

1 x 512 = 0

1 Х 1024 = 0

1 x 2048 = 0

1 x 4096 = 4096

1 x 8192 = 8192

1 x 16384 = 0

1 x 32768 = 32768

Итого: 45527

Для преобразования этого числа в шестнадцатеричное вспомним граничные значения порядков в этой системе счислений:

65536 4096 256 16 1

Число 65 536 (значение пятого порядка) не укладывается в числе 45 527, в пятой позиции ставим 0. Число 4096 (значение четвертого порядка) укладывается в числе 45 527 одиннадцать раз с остатком 471. В остатке 471 число 256 (значение третьего порядка) укладывается один раз с остатком 215. В новом остатке 215 число 16 (значение второго порядка) укладывается 13 раз с остатком 7. Таким образом, получаем шестнадцатеричное число BlD7.

Проверим наши математические выкладки:

В (11) * 4096 = 45 056

1 * 256 = 256

D (13) * 16 = 208

7 * 1 = 7

Всего 45 527

Для проверки ускоренного метода перевода возьмем двоичное число 1011000111010111, разделим его на группы по четыре знака: 1011 0001 1101 0111. Каждая из четырех групп затем преобразуется в шестнадцатеричное число:

1011 =

1 x 1 = 1

1 x 2 = 2

0 x 4 = 0

1 x 8 = 8

Всего: 11

Шестнадцатеричное: В

0001 =

1 x 1 = 1

0 x 2 = 0

0 X 4 = 0

0 x 8 = 0

Всего: 1

Шестнадцатеричное: 1

1101 =

1 x 1 = 1

0 x 2 = 0

1 x 4 = 4

1 x 8 = 8

Всего: 13

Шестнадцатеричное: D

0111 =

1 X 1 = 1

1 X 2 = 2

1 x 4 = 4

0 x 8 = 0

Всего: 7

Шестнадцатеричное: 7

Итак, получаем шестнадцатеричное число B1D7

Приложение Г - Ответы

Поделиться:
Популярные книги

Мир-о-творец

Ланцов Михаил Алексеевич
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Мир-о-творец

Имя нам Легион. Том 8

Дорничев Дмитрий
8. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 8

Грозовой замок

Мазуров Дмитрий
7. Громовая поступь
Фантастика:
фэнтези
героическая фантастика
рпг
5.00
рейтинг книги
Грозовой замок

Город Богов 3

Парсиев Дмитрий
3. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 3

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Жандарм 4

Семин Никита
4. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 4

Замуж второй раз, или Ещё посмотрим, кто из нас попал!

Вудворт Франциска
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Замуж второй раз, или Ещё посмотрим, кто из нас попал!

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Призыватель нулевого ранга. Том 2

Дубов Дмитрий
2. Эпоха Гардара
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Призыватель нулевого ранга. Том 2

Ассимиляция

Демидов Джон
4. Система компиляции
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Ассимиляция

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Леди для короля. Оборотная сторона короны

Воронцова Александра
3. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Леди для короля. Оборотная сторона короны

Предопределение

Осадчук Алексей Витальевич
9. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Предопределение