1.2. Системы счисления
Системы счисления бывают позиционные, когда каждый разряд числа имеет определенный вес, и знаковые, когда значение числа обозначают определенными знаками (римская система чисел). Мы будем рассматривать только позиционные системы счисления. В них в каждом разряде числа может быть только один символ.
Двоичная система счисления
Для записи двоичных чисел используются только два знака 0 и 1. Все вычислительные машины используют двоичную систему при своей работе. На выходе любого устройства имеется или низкий потенциал (0) или высокий (1). На рис.1.1 показан процесс переключения устройства из одного состояния в другое. Ранее были попытки использования десятичной системы счисления или троичной, но устройства на их основе оказались очень ненадежными
Для перевода числа из любой системы счисления в десятичную можно использовать следующую формулу:
U
t
1
0
t0
Рис.1.1
,
где ai – разрядные коэффициенты; b – основание системы счисления; i – номер разряда.
Первый целый разряд числа имеет номер 0, дробные разряды нумеруются отрицательными числами. Например, следующее двоичное число можно перевести в десятичное таким образом:
номера разрядов 43210
двоичное число 11011(2)
С10=1⋅20+1⋅21+0⋅22+1⋅23+1⋅24=27(10).
Для перевода десятичного числа в любую другую систему счисления нужно: целую часть числа сначала делить на основание системы счисления, пока остаток от деления не станет меньше основания, затем результат деления опять делится на основание и так до тех пор, пока результат последнего деления не станет меньше основания. Результат последнего деления дает старший разряд числа, а остатки от предыдущих делений – остальные разряды числа. Дробную часть десятичного числа и последующих результатов умножений нужно умножать на основание системы счисления. Целые части результатов умножений и дадут требуемую дробь.
Например, переведем десятичное число С10=25,35 в двоичное. Сначала целую часть этого числа будем делить на основание системы счисления – 2.
25(10) | 2 |
|
|
|
1 | 12 | 2 |
|
|
| 0 | 6 | 2 |
|
|
| 0 | 3 | 2 |
|
|
| 1 | 1 |
Целая часть числа будет равна С(2)=11001(2). Дробную часть числа сначала будем умножать на основание системы счисления – 2, а затем дробные части результатов умножения опять умножать на основание системы счисления.
0, | 35 |
* | 2 |
0, | 7 |
* | 2 |
1, | 4 |
* | 2 |
0, | 8 |
* | 2 |
1, | 6 |
Целые части результатов умножений дадут следующую двоичную дробь – 0,0101…(2).
Попробуем произвести сложение и вычитание двоичных чисел.
Сложение:
0 | 1 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 0 | 0 |
+
Здесь стрелочками показан перенос единицы в старший разряд числа, когда сумма разрядных чисел достигает или превышает основание системы счисления.
Вычитание:
_1 | 1 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
Здесь стрелочкой показан заем единицы из старшего разряда, которая для данного разряда равна основанию системы счисления.
Шестнадцатеричная система счисления
В шестнадцатеричной системе счисления для разрядных чисел используются не только 10 арабских цифр от 0 до 9, но и буквы латинского алфавита: A–10, B–11, C–12, D–13, E–14, F–15. Например, переведем следующее шестнадцатеричное число в десятичное.
номера разрядов 2 1 0
шестнадцатеричное число 1AE(16)
С10=14⋅160+10⋅161+1⋅162=430(10)
Теперь переведем десятичное число в шестнадцатеричное:
475(10) | 16 |
|
32 | 29 | 16 |
155 | 16 | 1 |
144 | 13 |
|
11 |
|
|
В итоге последний результат деления и остатки от деления дадут следующее шестнадцатеричное число: 1DB(16).
Можно очень легко переводить шестнадцатеричные числа в двоичные и обратно, минуя десятичную систему счисления. Следует только иметь в виду, что один шестнадцатеричный разряд числа полностью соответствует четырем двоичным разрядам.
Например, переведем шестнадцатеричное число в двоичное:
A8E(16)=1010 1000 1110(2).
- Программирование в среде Delphi
- Программирование в среде Delphi
- 1. История развития вычислительной техники, системы счисления и единицы информации.................................................7
- 2. Структура персонального компьютера и операционные системы.........................................................................13
- 3. Основы алгоритмизации и работа в delphi..........................18
- 4. Базовые элементы delphi...................................................................26
- 5. Стандартные функции и подпрограммы................................30
- 6. Операторы delphi......................................................................................33
- 7. Операторы циклов....................................................................................35
- 18. Выделение памяти под объект и прародитель всех классов – tobject..........................................................................................84
- 19. Обработка исключительных ситуаций................................87
- 20. Основные классы и общие свойства компонентов...93
- 26. Технология com.....................................................................................129
- 1. История развития вычислительной техники, системы счисления и единицы информации
- 1.1. История развития вычислительной техники
- 1.2. Системы счисления
- 1.3. Единицы информации
- 2. Структура персонального компьютера и операционные системы
- 2.1. Структура персонального компьютера.
- 2.2. Операционные системы
- 3. Основы алгоритмизации и работа в delphi
- 3.1. Основы программирования
- 3.2. Программирование в среде Delphi
- 4. Базовые элементы delphi
- 4.1. Алфавит среды Delphi
- 4.2. Константы
- 4.3. Переменные
- 4.4. Основные типы переменных
- 4.5. Операции над переменными и константами
- 5. Стандартные функции и подпрограммы
- 5.1. Математические функции
- 5.2. Функции преобразования
- 5.3. Дополнительные системные подпрограммы и функции
- 6. Операторы delphi
- 6.1. Оператор присваивания
- 6.2. Оператор безусловной передачи управления
- 6.3. Условный оператор if
- 6.4. Оператор разветвления Case
- 6.5. Составной оператор
- 7. Операторы циклов
- 7.1. Оператор цикла For
- 7.2. Оператор цикла Repeat
- 7.3. Оператор цикла While
- 8. Работа с массивами
- 9. Работа со строками
- 9.1. Процедуры работы со строками
- 9.2. Функции работы со строками
- 10. Работа с записями
- 11. Процедуры и функции
- 12. Модуль unit
- 13. Работа со множествами
- 14. Работа с файлами
- 14.1. Текстовые файлы
- 14.2. Типированные файлы
- 14.3. Нетипированные файлы
- 15. Работа с файлами и каталогами
- 16. Динамические переменные и структуры данных
- 16.1. Динамические переменные
- 16.2. Работа со стеком
- 16.3. Работа со списками или очередями
- 16.4. Работа с деревьями
- 17. Основы объектно–ориентированного программирования
- 17.1. Объекты и классы
- 17.2. Области видимости класса
- 17.3. Свойства (Property) и инкапсуляция
- 17.4. Методы, наследование и полиморфизм
- 17.5. События (Events)
- 18. Выделение памяти под объект и прародитель всех классов – tobject
- 18.1. Выделение памяти под объект
- 18.2. Описание класса tObject
- 18.3. Операторы приведения типов классов
- 19. Обработка исключительных ситуаций
- 19.1. Два вида оператора Try
- 19.2. Программное создание исключительной ситуации
- 19.3. Основные исключительные ситуации
- 20. Основные классы и общие свойства компонентов
- 20.1. Класс tList
- 20.2. Класс tStrings
- 20.3. Общие свойства компонентов
- 21. Графические возможности delphi
- 21.1. Класс Tcanvas
- 21.2. Классы тGгарhic и тРicture
- 21.3. Классы tFont, tPen и tBrush
- 21.4. Работа с изображениями
- 22. Визуальные компоненты delphi
- 22.1. Компонент tBitBtn
- 22.2. Компоненты tDrawGrid и tStringGrid
- 22.3. Компонент tPageControl
- 22.4. Компонент tTimer
- 22.5. Компонент tGauge
- 22.6. Компонент tСolorGrid
- 23. Стандартные диалоговые окна и типовые диалоги
- 23.1. Стандартные диалоговые окна
- 23.2. Типовые диалоги
- 24. Форма, приложение и глобальные объекты
- 24.1. Форма и ее свойства
- 24.2. Объект Application
- 24.3. Глобальные объекты
- Объект ClipBoard
- Объект Screen
- Объект Printer
- 25. Межпрограммное взаимодействие
- 25.1. Обмен сообщениями
- 25.2. Динамический обмен данными
- 25.3. Совместное использование общей памяти
- 25.4. Каналы
- 25.5. Сокеты
- 26. Технология com
- 26.1. Интерфейс
- 27. Технология автоматизации
- 27.1. Основы ole Automation
- 27.2. Примеры использования серверов автоматизации
- 27.3. Компоненты ActiveX
- 28. Динамические библиотеки
- 28.1. Создание dll
- 28.2. Использование dll
- 28.3. Пример написания dll
- 29. Работа с базами данных
- 29.1. Основные определения
- 29.2. Взаимодействие приложения на Delphi с базами данных
- 29.3. Компоненты взаимодействия с базами данных
- If adoTable1.Locate(’fio,stag’,varArrayOf([’Иванов’,’10’]),[])Then …;
- 29.4. Работа с локальной базой данных
- 30. Основы языка sql
- 30.1. Составные части sql
- 30.2. Команда select
- 30.3. Пример использования запросов в Delphi
- 31. Создание собственных компонентов
- 32. Работа с реестром
- 33. Перспективы программирования в delphi
- Литература
- 220013, Минск, п.Бровки, 6