
- •Оглавление
- •От редактора перевода
- •Введение
- •Использовать
- •Аргументировано обсуждать
- •IV. Применять знания
- •Модуль 1. Компьютерные системы
- •Обзор компьютерных систем
- •1.1.1. Компоненты компьютерных систем
- •Эволюция компьютерных систем
- •1.2.1. Краткая историческая справка
- •Закон Мура
- •1.2.2. Применение компьютерных систем
- •Представление данных в компьютерных системах
- •1.3.1. Биты и байты
- •1.3.2. Системы счисления
- •Модуль 2. Системы аппаратного обеспечения
- •2.1 Процессор и память
- •2.1.1 Процессор. Основы.
- •2.1.2 Типы памяти
- •2.1.3 Лабораторная работа: Эталонное тестирование (необязательная)
- •2.2 Внешние устройства
- •2.2.1 Присоединяемые внешние устройства
- •2.2.2 Шины
- •2.2.3 Входные/выходные устройства
- •2.3 Запоминающие устройства
- •2.3.1 Интерфейсы дисковых контроллеров
- •2.3.2 Накопитель (запоминающее устройство большой ёмкости)
- •2.4 Соединение компонентов аппаратного обеспечения
- •2.4.1 Как компоненты компьютера работают вместе
- •2.4.2 Лабораторная работа: Изучение компьютерных систем
- •2.4.3 Лабораторная работа: Конфигурация online
- •2.5 Повышение производительности компьютера
- •2.5.1 Закон Мура
- •2.5.2 “Узкие” места (Bottlenecks)
- •2.5.3 Производительность и время ожидания
- •Модуль 1 и Модуль 2 Обзорные материалы
- •Закон Мура
- •Модуль 3. Программное обеспечение операционных систем
- •Структура
- •3.1.1 Уровни программного обеспечения
- •3.1.2 Bios: Жизнь снизу
- •3.1.3 Управление процессами
- •3.1.4 Лабораторная работа: диспетчер задач (Task Manager)
- •3.2 Управление устройствами и конфигурация
- •3.2.1 Управление прерываниями
- •3.2.2 Характеристики аппаратного обеспечения
- •3.2.3 Конфигурация
- •3.2.4 Лабораторная работа: Управление устройствами
- •3.3. Распределение ресурсов
- •3.3.1 Виртуальная память
- •3.3.2 Совместное использование файлов и принтеров
- •3.4. Файловые системы
- •3.4.1 Организация файлов
- •3.4.2 Таблица размещения файлов (File Allocation Table) и файловая система nt
- •Модуль 4. Прикладное программное обеспечение
- •4.1 Основы программного обеспечения
- •4.2 Использование систем программного обеспечения
- •4.2.1 Лабораторная работа: Команды dos
- •4.2.2 Лабораторная работа: Макросы
- •4.2.3 Лабораторная работа: Встроенные объект-приложения
- •4.3 Пакетные файлы сценариев
- •4.3.1 Расширенные функции командной строки
- •4.3.2 Команды пакетного файла
- •4.3.3 Лабораторная работа: Создание пакетного файла
- •4.4 Базы данных
- •4.4.1 Лабораторная работа: Поиск в библиотеке Конгресса
- •4.5 Проектирование программного обеспечения
- •4.5.1 Введение в разработку крупномасштабных программных систем (Large-Scale Software).
- •4.5.2 Модель открытого кода
- •4.5.3 Средства для создания и управления программным обеспечением
- •Модуль 3 и Модуль 4 - Материалы для проверки
- •Базы данных
- •Виртуальная память
- •Модуль 5. Сетевые системы
- •5.1 Основы Интернета
- •5.1.1 Типы mime
- •5.1.2 Языки Интернет
- •5.2 Локальные и глобальные сети
- •5.3 Стратегии коммуникации
- •5.3.1 Структура клиент-сервер (Client-Server Framework)
- •5.3.2 Равноправное соединение
- •5.4 Технологии передачи данных
- •5.5 Архитектура Интернет
- •5.5.1 Роутеры и tcp/ip
- •5.5.2 Сервис доменных имен (Domain Name Service)
- •5.5.3 Способность к подключению
- •5.5.4 Провайдеры Интернет-сервиса (Internet Service Providers)
- •Модуль 6. Безопасность компьютера
- •6.1 Угрозы безопасности
- •6.1.1 Злоумышленники: кто, зачем и как?
- •6.1.2 Кража личности и нарушение конфиденциальности (Identity Theft and Privacy Violation)
- •6.1.3 Вредоносные программные средства
- •6.1.4 Отказ от обслуживания
- •6.2 Технологии безопасности
- •6.2.1 Шифрование
- •6.2.2 Применение шифрования
- •6.2.3 Идентификация
- •6.3 Предотвращение, определение и восстановление
- •6.3.1 Система сетевой защиты (Firewall)
- •6.3.2 Средства определения вторжения
- •6.3.3 Восстановление данных
- •6.3.4 Обзор типов безопасности
- •Модуль 5 и Модуль 6 Обзорный материал
- •Шифрование
- •Приложение а. Выполнение файла Visual Basic
- •Приложение в. Загрузка приложения WinZip
- •Рекомендации по чтению ssd2
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.
Чтобы использовать калькулятор для преобразования данных, нажмите кнопку Dec, чтобы перевести калькулятор в десятичный режим, наберите число, а затем нажмите кнопку Hex, чтобы превратить число в шестнадцатиричное. Вы можете также преобразовывать из шестнадцатиричного к десятичному; клавиши A-F доступны каждый раз когда вы находитесь в шестнадцатиричном режиме.
|