Содержание
1. Позиционные системы счисления.............................................................. 3
2. Переходы между основными системами счисления................................. 5
3. Основные 16‑ичные константы................................................................. 5
4. Реализация целочисленных операций...................................................... 7
5. Представление отрицательных чисел....................................................... 8
6. Целочисленные типы данных в языке Си................................................. 9
7. Вещественные типы данных в языке Си................................................. 10
8. Кодирование символов............................................................................ 12
9. Схемы алгоритмов................................................................................... 14
Позиционные системы счисления
Позиционные системы счисления (СС) – это системы счисления, в которых количественный эквивалент каждой цифры зависит от ее положения (позиции) в записи числа. Например:
1) шестидесятиричная (Древний Вавилон) – первая позиционная система счисления. До сих пор при измерении времени используется основание равное 60 (1 мин = 60 с, 1 ч = 60 мин);
2) двенадцатеричная система счисления (широкое распространение получила в XIX в. Число12 – «дюжина»: в сутках две дюжины часов. Счет не по пальцам. а по суставам пальцев. На каждом пальце руки, кроме большого, по 3 сустава – всего 12;
3) в настоящее время наиболее распространенными позиционными системами счисления являются десятичная, двоичная, восьмеричная и шестнадцатеричная.
Система счисления – способ записи (изображения) чисел. Символы, при помощи которых записывается число, называются цифрами. Алфавитом системы счисления называется совокупность различных цифр, используемых в позиционной системе счисления для записи чисел. Например: Алфавиты некоторых позиционных систем счисления. Десятичная система: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
Двоичная система: {0, 1}
Восьмеричная система: {0, 1, 2, 3, 4, 5, 6, 7}
Шестнадцатеричная система: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
Количество цифр в алфавите равно основанию системы счисления. Основанием позиционной системы счисления называется количество знаков или символов, используемых для изображения числа в данной системе счисления.
Базисом позиционной системы счисления называется последовательность чисел, каждое из которых задает количественное значение или «вес» каждого разряда. Например: Базисы некоторых позиционных систем счисления.
Десятичная система: 100, 101, 102, 103, 104,…, 10n,…
Двоичная система: 20, 21, 22, 23, 24,…, 2n,…
Восьмеричная система: 80, 81, 82, 83, 84,…, 8n,…
Свернутой формой записи числа называется запись в виде
A=an-1an-2…a1a0.a-1…a-m
Именно такой формой записи чисел мы и пользуемся в повседневной жизни. Иначе свернутую форму записи называют естественной или цифровой.
Пример. Десятичное число 4718,63, двоичное число 1001,1, восьмеричное число 7764,1, шестнадцатеричное число 3АF16
Позиция цифры в числе называется разрядом: разряд возрастает справа налево, от младших к старшим, начиная с нуля. В позиционной системе счисления любое вещественное число в развернутой форме может быть представлено в следующем десятичном виде:
А = ± (an-1qn-1+an-2qn-2+ … +a0q0+a-1q-1+a-2q-2+ … +a-mq-m)
Здесь А – само число, q – основание системы счисления, ai – цифры, принадлежащие алфавиту данной системы счисления, n – число целых разрядов числа, m – число дробных разрядов числа. Развернутая форма записи числа – сумма произведений коэффициентов на степени основания системы счисления.
|
Пример. Десятичное число А10 = 4718,63 в развернутой форме запишется так:
А10 = 4·103 + 7·102 + 1·101 + 8·100 + 6·10-1 + 3·10-2
Двоичное число А2 = 1001,1 = 1·23 + 0·22 + 0·21 + 1·20 + 1·2-1
Восьмеричное число А8 = 7764,1 = 7·83 + 7·82 + 6·81 + 4·80 + 1·8-1
Шестнадцатеричное число А16 = 3АF16 = 3·162 + 10·161 + 15·160
Переходы между основными системами счисления
Основные СС имеют основания 2, 8,10, 16. Системы с основаниями 2, 8 и 16 являются родственными, так как их основания являются степенями двойки. Переходы между ними реализуются легко.
2 ® 8. Двоичное число разбивается справа налево на триады (тройки цифр) и каждая триада заменяется на 8‑ичную цифру.
2 ® 16. Двоичное число разбивается справа налево на тетрады (четверки цифр) и каждая тетрада заменяется на 16‑ичную цифру.
8 ® 16 и 16 ® 8. Преобразование идет через двоичную СС.
Любое основание ® 10. Осуществляется по определению позиционной системы счисления.
10 ® 16. Имеется два способа преобразования.
1. Метод деления «уголком» строит результирующее 16‑ичное число от младших цифр к старшим. Для этого запоминаются целые остатки от деления исходного числа на 16, пока частное не станет равным 0. Записывая эти остатки в обратном порядке, получим ответ.
2. Метод «вычерпывания» состоит из нескольких итераций. На каждой итерации исходное число х оценивается снизу максимальной степенью m нового основания p = 16: х ≥ 16m. Затем определяем число r вхождений степени 16m в число х. Наконец, 16‑ичную цифру r записываем в результирующее число в разряд с номером m. Число x заменяем на меньшее число х – r · 16m. Если новое число х = 0, то алгоритм заканчивается, и остальные разряды результата заполняем нулями. В противном случае, переходим к следующей итерации.
|
3. Основные 16‑ичные константы
Большинство числовых констант, которые встречаются в компьютерной технике, являются круглыми шестнадцатеричными числами. Эти числа обычно записывают в десятично-буквенном виде, имеющем формат ab, где а – десятичное число, b – буква.
Таблица 1. Шестнадцатеричные константы
16‑ичная константа | Десятично-буквенное значение | Примечания |
0х10 | 24 = 16 | Размер параграфа |
0х100 | 28 = 256 | Размер физического сектора |
0х200 | Размер кластера на дискете | |
0х400 | 210 = 1024 = К | Килобайт |
0х1000 | 4 К | |
0х10000 | 64 К | Размер сегмента |
0хА0000 | 640 К | Верхняя граница ОЗУ для размещения исполняемого кода в DOS |
0х100000 | 220 = М | Мегабайт |
Следующая таблица содержит популярные степени числа 2, а также их русские и английские названия.
Таблица 2. Степени числа 2
Показатель степени | Степень | Примечания |
К = 1024 » 103, К | Килобайт, Kilobyte | |
М = К·К = К2 » 106, М | Мегабайт, Megabyte | |
Г = К3 » 109, G | Гигабайт, Gigabyte | |
Т = К4 = М2 » 1012, T | Терабайт, Terabyte | |
П » 1015, P | Петабайт, Petabyte | |
Э » 1018, E | Экзабайт, Exabyte | |
З » 1021, Z | Зетабайт, Zettabyte | |
Й » 1024, Y | Йотабайт, Yottabyte |
Последние строки кратных единиц были дополнены ГОСТом в 1991. Вычисления с числами, представленными в десятично-буквенном виде, можно осуществлять без перехода в десятичную СС. Например, 32 Т / 256 К = 245 / 218 = 227 = 128 М.
Таблицы 1 и 2 позволяют переводить 16‑ичные числа в десятично-буквенную запись без применения вычислительных средств. Например,
0х7D8A30 = 7·0x100000 + 13·0x10000 + 8·0x1000 + 10·0x100 + 3·16 = 7 M + 13·64 K + 8·4 K + 10·(K/4) + 48 = 7 M + 866,5 K + 48.
Отметим, что для десятично-буквенных чисел не выполняется дистрибутивный закон, то есть 1 М + 100 К не равен 1,1 М.