- •Содержание
- •Преобразование чисел
- •Целые числа
- •Дробные числа
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №2
- •Объединение со структурой с битовыми полями в языке Си.
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №3
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №4
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №5
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №6
- •Программирование на ассемблере
- •Основные команды ассемблера
- •Директивы
- •Программные прерывания
- •Отладка программ
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №7
- •Команда jmp
- •Команда Loop
- •Флаговый регистр (flags)
- •Команды условного перехода
- •Знаковые и беззнаковые данные
- •Команды логических операций: and, or, xor, test, not
- •Команды сдвига и циклического сдвига
- •Команды сдвига
- •Команды циклического сдвига
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Литература
Преобразование чисел
Преобразовывать дробные и целые числа из двоичной системы счисления в шестнадцатеричнуюи обратно просто. Достаточно разделить двоичное число на группы по 4 бита (битом будем называть двоичный разряд), причём 4 бита начинают формировать непосредственно от точки, которая разделяет целую и дробную части числа. Следовательно, для целой части группы формируются от точки справа налево, а для дробной части слева направо. Каждую группу по 4 бита, которую ещё называюттетрадой, можно преобразовать в один шестнадцатеричный разряд со значением от 0 доF(см. Табл.1.3).
Таблица 1.3. Соответствие двоичных тетрад и шестнадцатеричных цифр.
Двоичная тетрада |
Шестнадцатеричная цифра |
Десятичное значение |
0 0 0 0 |
0 |
0 |
0 0 0 1 |
1 |
1 |
0 0 1 0 |
2 |
2 |
0 0 1 1 |
3 |
3 |
0 1 0 0 |
4 |
4 |
0 1 0 1 |
5 |
5 |
0 1 1 0 |
6 |
6 |
0 1 1 1 |
7 |
7 |
1 0 0 0 |
8 |
8 |
1 0 0 1 |
9 |
9 |
1 0 1 0 |
A |
10 |
1 0 1 1 |
B |
11 |
1 1 0 0 |
C |
12 |
1 1 0 1 |
D |
13 |
1 1 1 0 |
E |
14 |
1 1 1 1 |
F |
15 |
Если для тетрады не хватает битов, то слева дописываются незначащие нули для целой части, и справа – для дробной части (см. рис. 1.3).
Рис.1.3. Преобразование дробного двоичного числа в шестнадцатеричное.
Преобразование дробные и целые числа из шестнадцатеричной системы в двоичнуюпроделать тоже несложно – каждая цифра шестнадцатеричного числа заменяется соответствующей двоичной четырёхбитной тетрадой из таблицы 1.3 (см. рис. 1.4).
Рис.1.4. Преобразование дробного шестнадцатеричного числа A18.2E16в двоичное.
Целые числа
Преобразование целых десятичных чисел в двоичныеможно совершать двумя разными способами.
1й способ. Последовательное вычитание из числа степеней двойки. Самая большая степень двойки, меньшая, чем число, вычитается из этого числа. Та же операция проделывается с полученной разностью до тех пор, пока разность не станет равной нулю (Рис. 1.5). Когда число разложено по степеням двойки, то двоичное значение получается так: единички ставятся в тех позициях, которые соответствуют полученным степеням двойки, а нули – во всех остальных позициях.
Рис.1.5. Преобразование десятичного числа 197 в двоичное (1йспособ).
2й способ. Последовательное деление числа на два.Частное записывается непосредственно под исходным числом, а остаток записывается рядом с частным. Процесс повторяется до тех пор, пока не останется 0. Двоичное число можно прочитать из колонки остатковснизу вверх(Рис. 1.6).
Рис. 1.6. Преобразование десятичного числа 197 в двоичное (2йспособ).
Преобразование целых десятичных чисел в шестнадцатеричныеможно совершать последовательным делением числа на 16. Если результат деления больше 16, то деление производится еще раз. Частное, полученное последним, будет старшим разрядом шестнадцатеричного числа. Далее записываются остатки от деления в обратном порядке их получения (Рис. 1.7). Числа, больше 9, но меньше 16, получаемые при делении, заменяются соответствующими шестнадцатеричными цифрами (табл. 1.1 или 1.3).
Рис. 1.7. Преобразование десятичного числа 1970 в шестнадцатеричное.
Целые двоичные числа в десятичныеможно преобразовывать двумя способами.
1й способ. Суммирование степеней двойки, у которых биты двоичного числа равны 1:
Рис. 1.8. Преобразование двоичного числа в десятичное (1йспособ).
2й способ. Двоичное число записывается вертикально по одному биту в строке, начиная с крайнего правого. Крайний левый бит находится внизу. Десятичное число собирается снизу вверх. Нижняя строка это 1. Число из нижнего ряда переходит вверх, умножаясь на 2, и суммируется с битом текущего ряда. Результат получается в самом верхнем ряду:
Рис. 1.9. Преобразование двоичного числа в десятичное (2йспособ).