М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
tyujg
tyujg
01.12.2020 06:04 •  Информатика

Пусть дано какое-то число. необходимо обнулить некоторые биты, не трогая все остальные, за минимальное количество операций. по идее, можно сделать так a = a and (not (1001)); поставив единицы на места, которые нужно обнулить. но можно как-то покороче? (да, это получится длинно) язык человеческий или паскаль.

👇
Ответ:
lydavika755
lydavika755
01.12.2020

Пусть нужно обнулить какой-либо бит в переменной типа byte (например, бит 3). Определим сначала число, содержащее единицы во всех битах, кроме третьего. Максимальное число, которое можно записать в тип byte, равняется 255. Чтобы в нем обнулить третий бит, вычтем из этого числа третью степень числа 2 (255-8=247). Если это число логически умножить на a, то его единицы никак не скажутся на состоянии переменной a, а нуль в третьем бите независимо от значения третьего бита переменной a даст в результате 0. Итак, имеем a:= a and (255-8). Аналогично можно обнулить несколько битов.

4,5(92 оценок)
Открыть все ответы
Ответ:
vitalikpchel
vitalikpchel
01.12.2020
Если не ошибаюсь, то X и Z являются типа byte. Требовать от переменных этого типа извлечение корня неправильно. Так как это по определению целые положительные числа, размером до 256. От переменной, из которой извлекают корень, требуется тип значения - действительное число. Так что лучше сразу объявить эти две переменные типа double (похоже так в Паскале).  

В первом же случае лучше извлечь корень с операции sqrt. Снова, если не ошибаюсь, операция возведения в степени в Паскале довольно трудоемка что ли. Она определяется через exp и ln. Так что лучше не заморачиваться, а воспользоваться оператором  sqrt.
4,8(91 оценок)
Ответ:
fionovaa
fionovaa
01.12.2020
1) 1200 * 1200 dpi означает, что в квадрате размером 1 дюйм на 1 дюйм сканируется такое количество точек
2) в 1 дюйме = 2,54 см, значит в 10 см содержится 3,94 дюйма (10/2,54 = 3,94)
3) 3,94* 1200 = 4728 пикселей по ширине и по высоте экрана
4) 4728 * 4728 = 22353984 точек в цветном изображении 10 на 10 см
5) 22353984 * 24 = 536495616 бит - информационный объем изображения
Переведем в большие единицы измерения:
536495616 бит / 8 = 67061952 байт / 1024  = 65490,2 Кбайт / 1024 = 64 Мбайта
ответ: полученный файл будет 64 Мбайта.
4,5(6 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ