В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
kaaanrakun
kaaanrakun
21.09.2022 16:12 •  Информатика

Петя и Вася придумали секретный алгоритм, с которого можно шифровать числа. Результат
(R) шифрования числа N строится следующим образом:
Шаг 1. Начальное значение результата R установить равным остатку от деления числа N на 6.
Шаг 2. Заменить число N на результат деления числа N на 6 нацело без остатка.
Шаг 3. Если на шаге 2 получился 0, закончить работу алгоритма.
Шаг 4. Если в записи результата R чётное число знаков, приписать к результату слева остаток от
деления числа N на 6, иначе приписать к результату справа остаток от деления числа N на 6.
Шаг 5. Перейти к шагу 2.
Например, число 20 кодируется как 23.
Вася получил от Пети зашифрованное число 432.
Какое число N зашифровал Петя?

Показать ответ
Ответ:
данил1956
данил1956
17.01.2023 14:54
1)  Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака.  Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1
 = - 127,  максимальное число = + 127
2)  Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит,  в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000  0110  0100  0111  и записываем в шестнадцатиричном виде 
0111(2) = 7(16)   0100(2) = 4(16)   0110(2) =6(16)   0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля  = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а)   будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное  01101001(2)  ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
0,0(0 оценок)
Ответ:
csmos
csmos
24.11.2020 09:54
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
begin
  var m:=ReadInteger('Количество элементов в массиве А (m):');
  var n:=ReadInteger('Количество элементов в массиве B (n):');
  var k:=ReadInteger('Позиция вставки k (1<k<m):');
  if (k>1) and (k<m) then begin
    var a:=ArrRandom(m,1,99); Writeln('Массив A'); a.Println;
    var b:=ArrRandom(n,1,99); Writeln('Массив B'); b.Println;
    Writeln('Результат вставки'); (a[:k]+b+a[k:]).Println
    end
  else Writeln('Вы нарушили условие 1<k<m')
end.

Тестовое решение
Количество элементов в массиве А (m): 10
Количество элементов в массиве B (n): 6
Позиция вставки k (1<k<m): 4
Массив A
68 64 30 75 36 15 50 39 92 26
Массив B
56 68 97 30 95 63
Результат вставки
68 64 30 75 56 68 97 30 95 63 36 15 50 39 92 26
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота