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

В кодировке КОИ-8 каждый символ кодируется 8 битами. Андрей написал текст (в нём нет лишних пробелов): «Обь, Лена, Волга, Москва, Макензи, Староандреевская, Амазонка — реки». Ученик вычеркнул из списка название одной из рек. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.При этом размер нового предложения в данной кодировке оказался на 16 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название рек

Показать ответ
Ответ:
жони12
жони12
21.10.2022 14:53
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 оценок)
Ответ:
Shaxrior
Shaxrior
19.08.2022 13:50
Последнее проверяемое число 7FF, поскольку большее число при удвоении будет четырехзначным, нарушая условие задания.

procedure Analyze(n: integer; var sd: integer; var has2: boolean);
{Для заданного целого n возвращает:
  sd - сумму цифр в шестнадцатиричном представлении;
  has2 - true, если среди шестнадцитиричных цифр имеется хотя бы одна двойка.}
const
  mask = $00F;

var
  i, r: integer;

begin
  has2 := false;
  sd := 0;
  for i := 1 to 3 do
  begin
    r := (n and mask);
    has2 := (has2 or (r = 2));
    sd := sd + r;
    n := (n shr 4);
  end
end;

function IsSuitable(n: integer): Boolean;
{Проверяет, удовлетворяет ли число n набору условий}

var
  s1, s2: integer;
  has2, stub: boolean;

begin
  Analyze(n, s1, has2);
  Analyze(2 * n, s2, stub);
  IsSuitable := ((s1 = s2) and has2)
end;

var
  i, n: integer;

begin
  n := 0;
  for i := $100 to $7FF do
    if IsSuitable(i) then n := n + 1;
  Writeln('Найдено чисел- ', n)
end.

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