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

2. Запишите дополнительный код числа, интерпретируя его как шестнадцатибитовое целое без знака:
а) 22491; б) 23832; в) 18509.

Показать ответ
Ответ:
Nr2006
Nr2006
22.06.2022 19:01
9^{22} + 3^{66} - 12

Преобразуем выражение
9^{22} + 3^{66} - 12 = 3^{44} + 3^{66} - 4*3 = 3^{44} + 3^{66} - 3^{2} - 3^{1}

Первые 2 слагаемых при переводе в с. сч. 3 дадут числа вида "10000...00", и количество нулей будет равно величине степени. (Можешь сам у в этом убедиться для чисел с небольшой степенью). Поэтому первые два слагаемых переведутся в число "100...0010000...00", кол-во нулей между единицами равно 66-45 = 21, правее средней единицы = 44.

Число 3^{2} + 3^{1} гораздо меньше. Поэтому при вычитании мы будем занимать разряд до тех пор, пока не дойдем до средней единицы, которая станет после этого 0, а все, что правее - двойками (было "100..00100..00", стало "100..00022..22", но только после заёма единицы, ещё нужно довычистывать). Затем проведем вычитание и посмотрим, сколько двоек пришлось убрать для этого.

Переводим (3^{2} + 3^{1})_{10} = 110_{3}.
Вычитаем "100..00100..0000" - 110 = "100..00022..2120"
Кол-во двоек между маркерованными цифрами = 44 - 3 = 41. Добавим ещё одну 2 правее маркерованной единицы = 42 - ответ
0,0(0 оценок)
Ответ:
magoomamedzadeh
magoomamedzadeh
08.09.2020 00:46
Тут есть несколько ошибок:
1. Отсутствует ключевое слово begin в основной программе. Насколько я понял, оно должно стоять перед k:=0.

2. Внутри функции ODD не объявлена локальная переменная i, которая используется в цикле.

3. В основной программе вы вызываете функцию ODD и передаете ей аргумент с[i], хотя в описании функции аргумент не обозначен.

4. В функции ODD происходит обработка глобального массива C, что делать нельзя.

5. Функция должна возвращать какое-то значение. В описании вы указали integer, а в основной программе в строке if Odd(c[i])... вы подразумеваете, что оно должно быть булевым, т.е. или True или False.

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