М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
пипл4
пипл4
06.03.2020 01:24 •  Информатика

Деление двоичных чисел 1011010/10010 покажите как делить столбиком

👇
Ответ:
zaev1990
zaev1990
06.03.2020
Задача:
Разделить число A = 10110102 на число B = 100102 в двоичной системе счисления.
Решение:
1) Впишем делимое A в 8-ми разрядный регистр, начиная с младших разрядов (нумерация разрядов начинается с нуля). В недостающие разряды записываем нули.
Разр.76543210A: 01011010Обратите внимание! Так как для выполнения деления требуется производить операцию вычитания, это требует использования знаковой ариaметики. И поэтому в нашем случае 7-й разряд является знаковым (0 - соответствует положительному числу, 1 - отрицательному), а старшим разрядом числа является 6-й разряд.
2) Впишем делитель В в 8-ми разрядный регистр, начиная с младших разрядов. В недостающие разряды записываем нули.
Разр.76543210B: 00010010Здесь также как и с числом A 7-й разряд является знаковым, а старшим разрядом числа является 6-й разряд. Эти знаковые разряды будут показывать нам знаки, образующихся в процессе деления, частичных остатков. Они не имеет никакого отношения к знакам исходных операндов и знаку результата, а играют чисто технологическую роль.
3) Предварительный сдвиг делителя. Сдвинем делитель B влево так, чтобы позиция старшей значащей единицы, в нем, совпала с позицией старшей значащей единицы в делимом A. Количество необходимых для этого сдвигов запомним в числе k В нашем случае старшая значащая единица в делимом Aрасположена в 6-м разряде, a в делителе B - в 4-м разряде. Следовательно нам необходимо сдвинуть число B влево на 2 разряда (k = 2).
Сдвинутый делитель выглядит следующим образом :
Разр.76543210B: 010010004) Так как в процессе деления множитель B придется не только прибавлять но и вычитать, то нам необходимо иметь число -B. Для этого представим B в дополнительном коде. Перевод в дополнительный код осуществим в два этапа:
4.1)Вначале получим обратный код. Для этого просто проинвертируем каждый разряд регистра (заменим "0" на "1", а "1" на "0").
Разр.76543210Bобр 10110111
4.2) Прибавим к числу в обратном коде единицу и получим дополнительный код.
Разр.c76543210111Bобр10110111+00000001Bдоп10111000Таким образом -B = Bдоп5) Процесс деления будет следующий:
5.1) Вычитаем из делимого А делитель В (т.е. прибавляем -В).
5.2) Анализируем знак полученного частичного остатка (7-й разряд). В регистр результата записываем "0" если остаток отрицательный и единицу в противном случае. Помним, что отрицательному числу соответствует наличие единицы в 7-м разряде и наоборот.
5.3) Сдвигаем частичный остаток на один разряд влево. При этом крайний правый (младший) разряд заполняется нулем, а знаковый разряд (7-й) в процессе сдвига не участвует.
5.4) Прибавляем к частичному остатку делитель В если остаток отрицательный либо вычитаем делитель в противном случае.
5.5) Анализируем знак полученного частичного остатка (7-й разряд). В регистр результата записываем "0" если остаток отрицательный и единицу в противном случае.
5.6) Действия описанные в пунктах 6.3-6.5 выполняем k раз (если k=0, то ни разу не выполняем). Но, если после очередной операции сложения/вычитания частичный остаток, по модулю, будет меньше чем исходный (несдвинутый) делитель, то операция деления прекращается, а частное дополняется нулями так, чтобы число разрядов частного равнялось k+1.
В нашем случае процесс деления выглядит следующим образом :
 Разр.c 765432 1011111 Частное А 01011010- B 101110001=000100101<--00100100- B101110000=1101110011111<--10111000+ B010010001=00000000 Здесь в колонке "Частное", сверху вниз, записаны разряды искомого частного, начиная со старших. Обратите внимание - значение разряда частного - это просто иверсия 7-го (знакового) разряда частичного остатка.
В следующем столбце - символика действий предпринимаемых в зависимости от знака частичного остатка. Смысл этих символов следующий:
    + В - делитель В прибавляется к регистру делимого A;
    - В - делитель В вычитается из регистра делимого A (технически здесь прибавляется Вдоп );
    <-- - частичный остаток сдвигается на один разряд влево;
   " = " - показывается значение частичного остатка полученного после сложения.6) Определяем остаток от деления. Для этого анализируем последний частичный остаток. В нашем случае он равен "00000000". То есть деление произвелось нацело без остатка.
7) Определяем знак результата. Если знаки исходных операндов одинаковы, то результирующее частное положительно и наоборот. В нашем случае знаки совпадают, следовательно результирующее частное положительно.
ответ:    10110102 : 100102 = 1012.
4,6(68 оценок)
Открыть все ответы
Ответ:
Полина174111
Полина174111
06.03.2020

IDLE в Windows находится в меню "Пуск" -> "Python 3.x" -> "IDLE". Также можно быстро найти его через "Поиск" около меню "Пуск", набрав в поле поиска "IDLE":В Unix-подобных операционных системах (Linux, MacOS), IDLE запускается через терминал командой idle. Если программа не запустилась, поищите idle в каталоге tools/idle дистрибутива Python. Если idle отсутствует в вашей системе, установите его командой:

при нажатии на "enter" в нужных конструкциях, отступы создаются автоматически;

если вам необходимо сдвинуться на предыдущий уровень, нажмите "Backspace" или стрелку "Влево";

если необходимо сдвинуться вправо, нажмите "Tab" или стрелку "Вправо";

если вы напечатали выражение pass, return, break, continue или raise и нажали "enter", каретка автоматически вернется к прежнему отступу.

Объяснение:я вроде всё написал

4,6(73 оценок)
Ответ:
aveter256
aveter256
06.03.2020

K1 = int(input())

M = int(input())

K2 = int(input())

P2 = int(input())

N2 = int(input())

if M != 1:

   for i in range(1,1000):

       if i!=0 and N2==((K2-1)//i)+1:

           P1 = (((K1-1)//i)//(M-1))+1

           N1=(((K1-1)//i)%(M-1))  

if M == 1:

   N1 = 1

   for i in range(1,1000):

       if i!=0:

           while K1 % i != 0:

               K1 = K1 + 1

           P1 = (K1//i)

if K2 < P2 * N2 or N2 > M or K2 // P2 < M:

   P1 = -1

   N1 = -1

if P2 == 1 and N2 == 1:

   P1 = -1

print(P1, N1)

Объяснение:

4,8(70 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ