1. Предсказать, что напечает программа на Паскале(c объяснением). var x : word; A : array[0..1] of byte absolute x; begin x := 709; writeln( A[0], ' ', A[1] ); readln; end; 2. Предсказать, что напечает программа на Паскале(c объяснением). var x : integer; A : array[0..1] of byte absolute x; begin x := -834; writeln( A[0], ' ', A[1] ); readln; end;
Объявлена переменная x типа word, которая занимает 2 байта (16 бит). Затем объявлен массив A, который содержит 2 элемента типа byte и указывает на тот же адрес в памяти, что и переменная x.
При присваивании значения x := 709 в двоичной системе это будет 00000010 10110101. Первый элемент массива A[0] содержит младший байт (1 байт) переменной x, то есть 10110101 (байт 1). Второй элемент массива A[1] содержит старший байт (второй байт) переменной x, то есть 00000010 (байт 2).
Следовательно, программа выведет "197 2", что является значениями этих байтов в десятичной системе счисления.
Программа напечатает "46 251".
Объявлена переменная x типа integer, которая занимает 4 байта (32 бита). Затем объявлен массив A, который содержит 2 элемента типа byte и указывает на тот же адрес в памяти, что и переменная x.
При присваивании значения x := -834 в двоичной системе это будет 11111111 11111110 11111110 00111010. При этом байты 1 и 2 зависят от знака числа, а байты 3 и 4 представляют само значение. Первый элемент массива A[0] содержит младший байт переменной x (00111010), второй элемент массива A[1] содержит старший байт переменной x (11111110).
Следовательно, программа выведет "46 251", что является значениями этих байтов в десятичной системе счисления.
Объявлена переменная x типа word, которая занимает 2 байта (16 бит). Затем объявлен массив A, который содержит 2 элемента типа byte и указывает на тот же адрес в памяти, что и переменная x.
При присваивании значения x := 709 в двоичной системе это будет 00000010 10110101. Первый элемент массива A[0] содержит младший байт (1 байт) переменной x, то есть 10110101 (байт 1). Второй элемент массива A[1] содержит старший байт (второй байт) переменной x, то есть 00000010 (байт 2).
Следовательно, программа выведет "197 2", что является значениями этих байтов в десятичной системе счисления.
Программа напечатает "46 251".Объявлена переменная x типа integer, которая занимает 4 байта (32 бита). Затем объявлен массив A, который содержит 2 элемента типа byte и указывает на тот же адрес в памяти, что и переменная x.
При присваивании значения x := -834 в двоичной системе это будет 11111111 11111110 11111110 00111010. При этом байты 1 и 2 зависят от знака числа, а байты 3 и 4 представляют само значение. Первый элемент массива A[0] содержит младший байт переменной x (00111010), второй элемент массива A[1] содержит старший байт переменной x (11111110).
Следовательно, программа выведет "46 251", что является значениями этих байтов в десятичной системе счисления.