Алгоритм перевода чисел из 10-тичной в систему счисления с обоснованием Р
1. Число делится на Р. Остаток запоминается.
2. Частное вновь делится на Р. Остаток запоминается.
3. Процедура повторяется до тех пор, пока частное не станет меньше Р или равным нулю.
4. Остатки выписываются справа налево в порядке их получения.
Пример 5
а) 4610 → в двоичную
: 2 | |||||||
-46 | : 2 | ||||||
Младший разряд | -22 | : 2 | |||||
-10 | : 2 | ||||||
-4 | : 2 | ||||||
-2 | 1< P | ||||||
Старший разряд |
4610 = 1011102
Проверка: 1·25 + 0·24 + 1·23 + 1·22 + 1·21 + 0·20 = 46
б) 6010 → в шестнадцатеричную
|
: 16 | ||||
-352 | : 16 | |||
Младший разряд | -16 | 1< P | ||
Старший разряд |
36410 = 16С16
Проверка: 1·162 + 6·161 + 12·160 = 256 + 96 + 12
Алгоритм перевода чисел из двоичной системы счисления в систему с основанием, 2n
1. Объединить цифры двоичного числа в группы по столько цифр, сколько степень двойки в основании системы (справа налево группировка).
2. Переводим группы цифр в цифры нужного алфавита.
Пример 6
11001002 → ОСТ и НЕХ
001 100 100 в основании системы 23 (если надо добавим нули)
1 4 4 1448
0110 0100 в основании системы 24 (если надо добавим нули)
6 4 6416
Арифметические действия в позиционных системах счисления, выполняются аналогично вычислениям в десятичной системе счисления
Пример 7
2110 + 8110 = 10210
+ | ||
Для других систем счисления необходимо составить таблицы простейших действий.
Для двоичной системы:
сложение | умножение | |||||||
+ | + | + | + | × | × | × | × | |
переполнение разрядной сетки и перенос единицы в старший разряд |
Пример 8
Умножить 1110 × 310 = 3310 перейдя к двоичному виду
× | |||||
+ | |||||
Проверка: 1000012 = 1·25 + 0·24 + 0·23 + 0·22 + 0·21 + 1·20 = 3310
Пример 9
Сложение 5910 + 4410 = 10310 перейдя к шестнадцатеричному виду
В | ||
× | С | |
Проверка: 6716 = 6·161 + 7·160 = 10310
Умножить 5910 + 4410 = 259610 перейдя к шестнадцатеричному виду
В | |||
× | С | ||
С | |||
+ | |||
А |
Проверка: А2416 = 10·162 + 2·161 + 4·160 = 259610
Дополнительный код.
Дополнительный код положительного числа совпадает с его прямым (обычным) кодом, при этом код нужно слева дополнить таким количеством нулей, чтобы не происходило переполнения разрядной сетки при вычислениях.
Замечание:
1. целесообразно выбирать разрядную сетку кратную байту, т.е 8-ми разрядам.
2. при сложении нескольких чисел результат не должен вызывать переполнение разрядной сетки.
Пример 10
30510 + 20010 = 505 > 256 = 28, т.е. 1 байта будет мало, надо 2 байта
305 + 200 = 505 = 1111110012 = 0000 0001 1111 1001 → 2 байта
6310 + 3610 = 99 < 28 → 1 байт
63 + 36 = 99 = 11000112 = 0110 0011 → 1 байт
Дополнительный код целого отрицательного числа
1. записать прямой код модуля числа (в нужном количестве разрядов)
2. инвертировать его (заменить 0 на 1 и 1 на 0).
3. прибавить к инверсному коду 1.
Пример 10
Представить в дополнительном коде -810. |-8| = 8 = 10002 = 0000 1000
Модуль числа – 8 в двоичной форме | |||||||||
Инверсия модуля отрицательного числа | |||||||||
+ | |||||||||
единица в старшем разряде признак отрицательного числа |
Сложение основного и дополнительного кодов дают нуль, т.е. дополнительный код дополняет до нуля.
+ | - 8 | ||||||||||
1 |