Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
iCarnecie_SSD2_RU_v5 (2).docx
Скачиваний:
30
Добавлен:
23.12.2018
Размер:
6.54 Mб
Скачать

1.3.2. Системы счисления

  • Десятичная

  • Двоичная

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

  • Упражнение

Мир вычислений использует несколько систем счисления для представления данных. Пока десятичная система, также известная как система счисления с основанием 10 (base10), ближе людям, так как это – система счисления, используемая в быту, двоичная (base2) и шестнадцатиричная (base16) — основные системы счисления используемые в вычислениях.

Десятичная

Мы начнем обсуждение систем счисления с рассмотрения десятичной системы как примера позиционной системы счисления. Десятичная система счисления содержит десять значений — 0, 1, 2, 3, 4, 5, 6, 7, 8, и 9. Каждое число в десятичной системе счисления может быть разбито на цифры по их "порядку" (позиции) в числе. Рассмотрим, например, число 43,872, где 2 находится на его 0-й позиции, 7 находится на его первой, 8 — на второй, 3 — на третьей, и 4 — на четвертой позиции. Каждая позиция имеет значение, которое может быть представлено либо экспоненциальным, либо десятичным значением. Следующая таблица показывает экспоненциальное и десятичное представление для каждой позиции числа 43,872.

Порядок

4-е

3-е

2-е

1-е

0-е

Цифра

4

3

8

7

2

Экспоненциальное значение порядка

104

103

102

101

100

Десятичное значение порядка

10,000

1,000

100

10

1

Таблица 1. Экспоненциальное и десятичное соответствие позиции цифры в числе

Отметим, что экспоненциальные значения увеличиваются соответственно позиции цифры. Например, экспоненциальное значение 4-й позиции составляет 104.

Чтобы определить значение числа, перемножают цифру в столбце со значением, которое представляет столбец. Следующая запись - простое вычисление для предыдущего примера.

4 × 104 + 3 × 103 + 8 × 102 + 7 × 101 + 2 × 100 = 4 × 10,000 + 3 × 1000 + 8 × 100 + 7 × 10 + 2 × 1 = 40,000 + 3000 + 800 + 70 + 2 = 43,872

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

dp(b)p + dp-1(b)p-1 + . . . + d0(b)0

Где p — позиция, b — основание системы счисления, dp — цифра на самой высокой позиции в числе, dp-1 — следующая позиция в числе и так далее.

Используя пример числа, рассмотренный ранее, получим dp = 4, dp-1 = 3, b = 10, и p = 4.

4 × 104 + 3 × 103 + 8 × 102 + 7 × 101 + 2 × 100 = 43,872

Формулу, приведенную выше, можно использовать для расчетов десятичного числового значения любого числа в заданной базе. Ниже показан пример расчета для конвертации числа 214 (основание системы счисления 4) в десятичное значение.

Позиция

1st

0th

Цифра

2

1

Экспоненциальное значение позиции

41

40

Десятичное значение позиции

4

1

Таблица 2. Экспоненциальное и десятичное значения позиции цифр в числе

2(4)1 + 1(4)0 = 2× 4 + 1 × 1 = 8 + 1 = 9

До сих пор мы обсуждали преобразование чисел в десятичные. Важно также уметь конвертировать числа из десятичной в другие системы счисления. Используя систему base4, сконвертируем число 89 из десятичной формы в число с основанием системы счисления 4 (base4).

Сначала, найдем значение p, где 4p < = 89 < 4p+1. В этом случае case p = 3. p — номер наивысшей позиции.

Теперь заполним следующую таблицу:

Позиция

3

2

1

0

Экспоненциальное значение порядка

43

42

41

40

Десятичное значение порядка

64

16

4

1

Вычисление

89 ÷ 64

25 ÷ 16

9 ÷ 4

1 ÷ 1

Результат

1

1

2

1

Остаток

25

9

1

0

Таблица 3. Преобразование чисел из системы base10 в base4

Следовательно, 8910 = 11214.

Теперь рассмотрим двоичную и шестнадцатиричную систему более подробно.

Двоичная

Поскольку все системы счисления преобразуются одинаково, вы уже имеете все необходимое, чтобы преобразовывать число в двоичный код и обратно. Давайте рассмотрим преобразование из двоичного в десятичное числа, которое в двоичной форме записывается как 10110110.

Наивысшая позиция p, получена подсчетом числа позиций в двоичном коде, начиная с нуля.

1 × 27 + 0 × 26 + 1 × 25 + 1 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 1 × 128 + 0 × 64 + 1 × 32 + 1 × 16 + 0 × 8 + 1 × 4 + 1 × 2 + 0 × 1 = 128 + 0 + 32 + 16 + 0 + 4 + 2 + 0 = 182

Например, в числе 100110 наибольшая позиция — 2p, где p = 5. Поскольку двоичная система самая простая система счисления для преобразования в десятичную, она поможет нам позже, когда мы будем преобразовывать шестнадцатиричные числа.

Обратите внимание, что двоичная система использует больше цифр для выражения значения числа чем десятичная. Например, число 99 — в десятичном виде это 1100011 — в двоичном виде. Компьютерные профессионалы заимствовали шестнадцатиричное представление как стенографию для двоичного, чтобы представить двоичные значения в краткой форме.

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

Шестнадцатиричная (base16), по всей вероятности та система счисления, с которой вы будете работать. В современной десятичной системе набор арабских цифр 0-9 необходимо дополнить дополнительными значениями для представления десятичных эквивалентов — 10, 11, 12, 13, 14, и 15. Вместо изобретения новых символов для представления этих чисел, используются буквы A-F. Шестнадцатиричная система представляется набором цифр 0-F. Используются как буквы нижнего, так и верхнего регистра (большие и маленькие). В этом курсе мы будем использовать верхний регистр A-F. Шестнадцатиричный формат, однако, обычно не представляется добавлением индекса 16 к цифре обозначающей число. Вместо этого используются два различных формата для представления шестнадцатиричных чисел: с добавлением вначале 0x или с добавлением в конце h. Мы будем использовать 0x, чтобы обозначать шестнадцатиричные числа.

Позиция

4

3

2

1

0

Экспоненциальное значение позиции

164

163

162

161

160

Десятичное значение позиции

65,536

4096

256

16

1

Таблица 4. Экспоненциальное и десятичное представление цифровой позиции числа

Есть два метода преобразования шестнадцатиричного числа в десятичное. При прямом преобразовании используется следующая формула

p(b)p + dp-1(b)p-1 + . . . + d0(b)0

Где dp – цифра на самой высокой позиции в числе, и dp-1 — следующая цифра на следующей позиции и так далее. b — база и p — значение самой высокой позиции.

Преобразование выглядит так:

4 × 163 + A × 162 + 3 × 161 + F × 160 = 4 × 4096 + 10 × 256 + 3 × 16 + 15 × 1 = 16,384 + 2560 + 48 + 15 = 19,007

Этот метод особенно полезен для больших шестнадцатиричных чисел. Однако, для небольших чисел из одной или двух цифр, часто быстрее преобразовать шестнадцатиричное число в двоичное перед превращением его в десятичное. Шестнадцатиричный формат поддерживает связь с двоичным, так как он – производный от системы base2. Каждая шестнадцатиричная цифра представляет четыре двоичных разряда. Таблица ниже показывает взаимосвязь между двоичным, шестнадцатиричным, и десятичным форматами для 0x0-0xF.

Десятичный

Двоичный

Шестнадцатиричный

0

0000

0x0

1

0001

0x1

2

0010

0x2

3

0011

0x3

4

0100

0x4

5

0101

0x5

6

0110

0x6

7

0111

0x7

8

1000

0x8

9

1001

0x9

10

1010

0xA

11

1011

0xB

12

1100

0xC

13

1101

0xD

14

1110

0xE

15

1111

0xF

Таблица 5. Десятичные, двоичные и шестнадцатиричные преобразования

Давайте преобразуем 0x3B к десятичному виду через двоичный. Первый шаг – выяснить, что отдельное шестнадцатиричное число представляет собой в двоичном виде. Заменим шестнадцатиричное число двоичным числом. Так, 0x3B становится 00111011. Как вы помните из предыдущего раздела о двоичном счислении, преобразование числа от двоичного к десятичному намного проще, чем в другие системы, поскольку умножение двоичных разрядов на 0 и 1 — простая операция.

0x3B= 001110112= 32 + 16 + 8 + 2 + 1 = 59

Байт данных (восемь битов) может быть записан в виде двух шестнадцатиричных цифр. Например, символ "N" в расширенном коде ASCII имеет двоичное представление 01001110. Если мы записываем его как две группы из четырех битов каждый, мы получаем 0100.1110. Используя таблицу 5 (выше), мы находим, что 0100 составляет 0x4 и 1110 — 0xE. Поэтому, соответствующий шестнадцатиричный для 0100.1110 есть 0x4E.

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

Упражнение

Вы можете поэкспериментировать с преобразованиями между двоичным, десятичным и шестнадцатиричным представлениями, используя приложение Microsoft Calculator.

  • В операционной системе Windows, нажав кнопку Start, выберете Programs, (Программы) затем Accessories (Принадлежности), и затем Calculator (Калькулятор). Для выполнения этого задания, вам нужно в меню View (Просмотр) выбрать Scientific (Научный).

 Чтобы использовать калькулятор для преобразования данных, нажмите кнопку Dec, чтобы перевести калькулятор в десятичный режим, наберите число, а затем нажмите кнопку Hex, чтобы превратить число в шестнадцатиричное. Вы можете также преобразовывать из шестнадцатиричного к десятичному; клавиши A-F доступны каждый раз когда вы находитесь в шестнадцатиричном режиме.

  • Каким будет шестнадцатиричное представление числа 255? Каков десятичный эквивалент числа 0x4D2?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]