Объяснение:
// Example program
#include <iostream>
#include <string>
int main()
{
int k[30];
for(int i = 0; i < 30; i ++) //заполняем случайными числами
k[i] = rand();
int min_sum = 999999999;
int num1, num2;
for(int i = 0; i < (30 - 1); i ++) //цикл поиска, i меняется от начала
//до предпоследнего элемента, чтобы не выйти
//за пределы при обращении к i + 1 элементу
{
int sum = k[i] + k[i+1];//очередная сумма
if(sum < min_sum) //сравниваем ее с текущим минимумом
{//если она меньше, то
min_sum = sum;//обновляем текущую сумму
num1 = i; num2 = i + 1;//обновляем номер
}
}
//на выходе из цикла в min_sum и num1 и num2 имеем самые минимальные номера
std::cout << "min_sum = " << min_sum << " nomer1 = " << num1 <<" nomer2 = " << num2;
}
10101:101
Сначала нужно представить в 8 битном формате (8 знаков) получается
00010101 : 00000101
сдвигаем делитель (00000101) влево пока позиция старшего значения единицы, в нем, не совпала с позицией старшего значения единицы в делимом (00010101). Получается делитель равняется 00010100. И запоминаем количество сдвигов (2).
Нам нужно представить делитель в дополнительном коде(это типо обратное число + 1 вот так: 00010100 прямой код = 11101011 + 1 = 11101100 дополнительный код). Если в начале цифры 1 то это отрицательной число таким образом -делитель = делитель в доп. коде.
Вычитаем из делимого (00010101) делитель (11101100) получается 00000001(частный), с остатком 1 (частный остаток). Вспоминаем количество сдвигов (2) и столько же сдвигаем влево наш частый получается 100 и 1 остаток.
В общем все сложно а результат 10101 : 101 = 100 и 1 в остатке.
А еще точнее 100.00110011
Объяснение:
Вот ссылка там можешь решать подобные задачи и объяснение там лучше моей: http://www.reshinfo.com/delenije_1.php
просто значение Разрядная сетка постав 8 бит
ну остальное сам поймешь