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

Дан фрагмент электронной таблицы.​


Дан фрагмент электронной таблицы.​

Показать ответ
Ответ:
Tolganay11
Tolganay11
05.04.2022 04:43
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var n:=ReadInteger('Количество элементов в массиве: ');
  var a:=ArrRandom(n,-50,50);
  a.Println(',');
  Writeln('Четные элементы: ');
  var i:=1;
  while i<n do begin Write(a[i],' '); Inc(i,2) end;
  Writeln;
  Writeln('Нечетные элементы: ');
  i:=0;
  while i<n-1 do begin Write(a[i],' '); Inc(i,2) end;
  Writeln
end.

Тестовое решение:
Количество элементов в массиве:  10
15,-18,-29,-25,46,21,-8,-17,-9,15
Четные элементы:
-18 -25 21 -17 15
Нечетные элементы:
15 -29 46 -8 -9
0,0(0 оценок)
Ответ:
svetaabc
svetaabc
28.01.2023 15:39
1. 16-битная арифметика со знаком предполагает, что самый левый бит используется для хранения знака. Отрицательные числа хранятся в дополнительном коде. При этом диапазон представления данных составляет -32768..32767.
32760+9 можно записать как 32767+2. Это позволит избежать перевода 32760 в двоичную систему счисления, а 32767 - это 15 двоичных единиц. В знаковом разряде, конечно же, ноль.
После сложения в знаковом разряде появляется единица, что означает наличие отрицательного числа в дополнительном коде. Знаковый разряд мы не трогаем, а остальные инвертируем и арифметически прибавляем к полученному числу единицу. Тем самым переходим к прямому коду, который переводим в десятичную систему представления. И результат, конечно, же, будет со знаком минус, т.е. -32767. Вот к чему приводит переполнение разрядной сетки в целочисленной арифметике. Кстати, аппаратно оно не обнаруживается, поскольку криминала нет - просто +1 переходит в самый старший (левый) разряд. "Железо" ведь не знает, сколько разрядов мы отвели под представление чисел и как биты нужно рассматривать! Соответствующая картинка находится в первом вложении.

2. В восьмибитной арифметике все происходит аналогично. 127 представляется знаковым нулем и семью единицами в остальных разрядах, т.е. 01111111₂. Тройка - это 0..011₂
Складываем и получаем 10000010₂. Опять знаковый разряд единичный, инвертируем остальные: 11111101. А теперь прибавляем единицу и получаем 11111110₂. Числу 1111110₂ (знаковый разряд мы не учитываем) соответствует 126₁₀, а с учетом знака окончательно получаем -126.

3. Тут немного больше нужно повозиться. Арифметика снова 16-битная, диапазон представления чисел -32768..32767.
Выпишем факториалы в пределах этого диапазона и одно значение вне его. 1!=1, 2!=2, 3!=6, 4!=24, 5"=120, 6!=720, 7!=5040, 8!=40320.
Делаем вывод, что максимальное значение факториала можно вычислить для n=7 и n!=5040. Тогда n+1=8 и при его вычислении у нас возникнет арифметическое переполнение. Переведем число 5040 в двоичную систему и умножим его на 8, поскольку 8! = 7! × 8. Поскольку 8 = 2³, то умножение на 8 в двоичной системе равносильно сдвигу числа влево на три разряда. Подробности приведены на рисунке во втором вложении. Мы получим "странный" результат: 8! = -25216.

1)выполните сложение десятичных чисел 32760 + 9 в 16-битной арифметике со знаком. 2)каков будет резу
1)выполните сложение десятичных чисел 32760 + 9 в 16-битной арифметике со знаком. 2)каков будет резу
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота