Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Консультации по информатике


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Роман Селиверстов
Статус: Советник
Рейтинг: 2952
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Профессор
Рейтинг: 2904
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2203
∙ повысить рейтинг »

/ НАУКА И ОБРАЗОВАНИЕ / Точные и естественные науки / Информатика

Номер выпуска:229
Дата выхода:29.10.2011, 12:00
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Профессор)
Подписчиков / экспертов:126 / 135
Вопросов / ответов:1 / 2

Консультация # 184308: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: 1.Перевести числа 91 и 117 к последующей цепочке - 10->16->2->8->10 2.Выполнить над числами 91 и 117 операции сложение,вычитания,деления в двоичной системе счисления С проверкой правильности решения ...


Консультация # 184308:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

1.Перевести числа 91 и 117 к последующей цепочке - 10->16->2->8->10
2.Выполнить над числами 91 и 117 операции сложение,вычитания,деления в двоичной системе счисления

С проверкой правильности решения

Дата отправки: 24.10.2011, 11:38
Вопрос задал: Посетитель - 383792 (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Старший модератор):

Здравствуйте, Посетитель - 383792!
1.
10->16: делим на 16 с запоминанием остатка, который будет очередной 16-ричной цифрой, пока не получим 0
91
1) 91/16 = 5 * 16 + 11 (0bh)
2) 5/16 = 0 * 16 + 5 (05h)
Запишем 16-ричные цифры в обратном порядке.
Т.о. 91 = 5bh

117
1) 117/16 = 7 * 16 + 5 (05h)
2) 7/16 = 0 * 16 + 7 (07h)
Т.о. 117 = 75h

16->2: расписываем каждую 16-ричную цифру побитно
5bh = 0101 1011b = 1011011b
75h = 0111 0101b = 1110101b

2->8: объединяем по три бита, начиная с младшего, при необходимости дополняем старшими нулями
1011011b = 001 011 011b = 133o
1110101b = 001 110 101b = 165o

8->10: умножаем 8-ричные разряды на соотствующую степень восьмерки и складываем
133o = 1*82 + 3*8 + 3 = 64 + 24 + 3 = 91
165o = 1*82 + 6*8 + 5 = 64 + 48 + 5 = 117

2.
Складываем столбиком, как в десятичной арифметике, только учитываем, что 0+0=0, 0+1=1+0=1, 1+1=10b

Код :
 1011011b
+
 1110101b
 --------
11010000b

Проверим, для этого преобразуем 11010000b в десятичную сс (умножаем на соответствующие степени 2 и складываем)
11010000b = 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 0*21 + 0*20 = 128 + 64 + 16 = 208 = 91 + 117

Вычитаем столбиком, как в десятичной арифметике, учитываем, что 0-0=1-1=0, 1-0=1, 0-1=1 с заемом
Код :
 1110101b
-
 1011011b
 --------
   11010b

Проверим, для этого преобразуем 11010b в десятичную сс (умножаем на соответствующие степени 2 и складываем)
11010b = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 16 + 8 + 2 = 26 = 117 - 91

Деление делается следующим образом:
1) выравниваем делитель так, чтобы старший бит = 1 был под старшим битом делимого, дополняя справа нулями.
Число шагов подсчета равно количеству добавленных нулей (разнице длины делимого и делителя) + 1.
В нашем случае, делитель и делимое имеют по 7 бит, значит число шагов = 7-7+1 = 1
2) обнуляем частное
3) смотрим, делимое ≥ делителя или нет.
Если ≥, то отнимаем от делителя "сдвинутый" (в нашем случае, никуда не сдвигался) делитель и вдвигаем в частное 1
Если <, то вдвигаем в частное 0
Сдвигаем делитель на 1 бит вправо (в нашем случае, это не требуется)
Повторяем шаг 3) необходимое число раз
Получаем частное и в делимо м после вычитаний останется остаток.
В нашем случае имеем всего один шаг:
Код :
 1110101b    -> отнимается -> частное = 1
-
 1011011b
 -------
   11010b     -> остаток = 1ah = 26

Проверяем: 117/91 = 1 и 26 в остатке

PS Числа записаны в следующих системах счисления: буковка 'h' за числом - 16-ричная, 'o' - 8-ричная, 'b'-двоичная, без буковки - десятичная

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 24.10.2011, 12:23
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует F®ost (Модератор):

Здравствуйте, Посетитель - 383792!
Перевод чисел из одной системы счисления в другую.
Что бы десятичное число перевести в шестнадцатеричное необходимо воспользоваться алгоритмом замещения:
1. Делим десятичное число А на 16. Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит шестнадцатеричного числа.
2. Если частное q не равно 0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток записывается в разряды шестнадцатеричного числа в направлении от младшего бита к старшему.
3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a меньше 16.
9110 : 16 = 510
9110 - (5 • 16) = 9110 - 8010 = 1110, в шестнадцатеричном виде В
8010 : 16 = 5
Таким образом 9110 → 5В16.
Что бы шестнадцатеричное число перевест и в двоичное надо заменить каждую цифру шестнадцатеричного числа ее эквивалентом в двоичной системе счисления.
5В состоит из 2 цифр 516 - эквивалент 1012 и В16 - эквивалент 1011.
Таким образом 5В16 → 10110112.
Для перевода двоичного числа в восьмеричное надо разбить это двоичное число на триады, начиная с младшего бита и заменить двоичные триады, начиная с младшей, на числа, равные им в восьмеричной системе.
10110112 разбивается на следующие триады: 0012, 0112 и 0112, заменяя которые восьмеричными эквивалентами получим:
10110112 → 1338.
Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики.
1338 = 1•82 + 3 • 81 + 3 • 80< /sup> = 1 • 64 + 3 • 8 + 3 • 1 = 64 + 24 + 3.
Итого выходит 1338 → 9110.

Арифметические действия с двоичными числами.
Для начала переведем цифры в двоичную систему: 9110 → 10110112, а 11710 → 11101012.
Сложение будем производить столбиком по таблице сложения:
1011011
+
1110101
=======
11010000

Вычитание также будем производить столбиком по таблице вычитания:
1110101
-
1011011
=======
0011010

Алгоритм деления также очень подробно расписан в вышеприведенных ссылках на урок. Проверка сложения и вычитания проводится контрольным вычитанием и сложением и тоже не составляет трудности.
Удачи!


Консультировал: F®ost (Модератор)
Дата отправки: 24.10.2011, 12:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное