Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №1811514
А
Аноним
11 октября 2024 07:43 · публичный вопрос
А
Аноним

Один ученик на языке Паскаль написал игру, в которой имелся следующий фрагмент var men, women, money: integer; men: =55; women: =107; money:=-72: writeln ('men=', men) ; writeln (…

Запрос пользователя

Один ученик на языке Паскаль написал игру, в которой имелся следующий фрагмент var men, women, money: integer; men: =55; women: =107; money:=-72: writeln ('men=', men) ; writeln ( 'women=', women) ; writeln ('maney=', money) ; Ученик создал исполняемый «ехе» файл и через некоторое время потерял исходный код. Через некоторое время, ему указал и на ошибку в слове«maney» при выводе, так как должно быть «money». Ученик решил исправить сам исполняемый файл и использовал для этого программу hex-editor. В окне этой программы можно видеть непосредственно значения байтов памяти загруженного файла. Для буквы «w»код в шестнадцатеричной системе счисления 77и, как показано ниже, адрес байта памяти, в которой храниться этот код 000076b5. 000076b5 000076a0 00007660 000076c0 00 01 00 4e 00 3d 00 00 02 03 00 41 00 00 Od 6d 04 05 00 4c 0d 77 00 61 06 07 00 5d 00 6f 00 6e 08 09 00 00 00 6d 00 65 Oa Ob 09 6d 00 65 00 79 Od 00 65 00 6e 00 3d Oe Of 00 6e 00 3d 00 00 .N.A.L.]...m.e.n .=...w.o.m.e.n.= ...m.a.n.e.y.=.. Какой код в шестнадцатеричной системе счисления у буквы«а»,которую нужно заменить? Какой адрес памяти у этой буквы? Через некоторое время ученик решил заменить выводимые данные. В памяти, как показано ниже, он нашел значение байта в шестнадцатеричной системе счисления 37.Это значение соответствует 55 в десятичной системе счисления. 3. Какой код будет выводить программа в десятичной системе счисления, если код 37в памяти, будет заменен на код 30. 00004210 00004210 00004220 00004230 00004240 00 01 02 03 00 00 06 00 Зе 00 00 00 b8 0c 72 ca 00 06 00 72 04 05 06 07 28 af 00 00 65 00 00 11 05 00 70 06 d4 05 00 70 08 09 0a Ob 06 00 33 00 00 1f 37) Oa 8c 27 00 00 07 8C 27 00 В программе также присутствует отрицательное число-72 и ученик решил заменить и его. Какой код в шестнадцатеричной системе счисления записан в соответствующем байте памяти для этого числа? Какое число будет выводить программа, если этот код исправили на b0?

Ответ нейросети
11 октября 2024 07:43

Разберем поочередно ваши вопросы.

  1. Код в шестнадцатеричной системе у буквы «а». Какой адрес памяти у этой буквы?

    В вашем коде буква «a» представлена в шестнадцатеричном виде как 61. Адрес этой буквы в памяти, исходя из вашего примера, можно найти, просматривая приведенные данные. Однако, в предоставленном вами фрагменте кода нет явного упоминания адреса для буквы «a»; если ваш код не содержит буквы «a», ее нельзя найти. В данном фрагменте возможны следующие адреса, содержащие буквы:

    00 6d (m) -> адрес, где находится «m»
    00 65 (e) -> адрес, где находится «e»
    ...
    

    Таким образом, если «a» не указана в фрагменте, вам необходимо искать по тексту, где она присутствует (ваш фрагмент не содержит буквы «a», но это важно - стоит обратиться к проверенному коду для ответа).

  2. Какой код будет выводить программа в десятичной системе, если код 37 в памяти заменен на код 30?

    Если в памяти значение, соответствующее 55 в десятичной системе, имеет код 37 в шестнадцатеричной системе и вы замените его на 30, то это ведет к следующему:

    30 (шестнадцатеричная) = 48 (десятичная)
    

    Это значит, что после замены программа будет выводить 48.

  3. Какой код в шестнадцатеричной системе записан в соответствующем байте памяти для числа -72?

    Число -72 в двоичном коде можно представить в комплементарной записи (изначально 72 в двоичной форме - это 48 в шестнадцатеричной системе, что соответствует 0x48):

    Для получения представления -72 мы будем использовать 2's complement:

    256 - 72 = 184
    184 в шестнадцатеричной системе = B8.
    

    Итак, код в шестнадцатеричной системе для -72 - это B8.

  4. Какое число будет выводить программа, если этот код исправить на B0?

    Если мы заменим B8 на B0, то число будет равняться 176 в десятичной системе (так как B0 в шестнадцатеричной системе это 176).

Таким образом, в вашем коде:

  • Код для буквы «а» - 61 (адрес, зависит от контекста).
  • Программа после замены 37 на 30 будет выводить 48.
  • Код для -72 - B8.
  • Программа, если код исправить на B0, будет выводить 176.