Предмет: Информатика, автор: emblerik

Пусть дано какое-то число. Необходимо обнулить некоторые биты, не трогая все остальные, за минимальное количество операций.

 

По идее, можно сделать так

 

a = a and (not (1001)); 

 

поставив единицы на места, которые нужно обнулить. Но можно как-то покороче? (да, это получится длинно)

 

Язык человеческий или паскаль.

Ответы

Автор ответа: PsyhoAssasin
0

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

Похожие вопросы
Предмет: Литература, автор: megatel695
1. С каким предметом у главного героя («Уроки французского») были проблемы в новой школе?

А) С немецким языком

Б) С французским языком

В) С математикой

Г) С литературой

2. Какую цель преследовала Лидия Михайловна, играя на деньги с учеником?

А) Дать возможность своему ученику покупать молоко

Б) Помочь снять стресс

В) Помочь материально, не ранив гордость мальчика

Г) Ей было скучно

3. Дюйшен («Первый учитель») хотел:

А) Заслужить уважение земляков

Б) Дать возможность детям увидеть мир, другую жизнь

В) Научить грамоте аильских детей

Г) Стать первым директором аильской школы

4. Где увидела дочь художника Исабекова («Красное яблоко») красное яблоко?

А) В супермаркете

Б) В осеннем саду

В) На базаре

Г) Их продавали в поезде

5. Какое решение принял Исабеков после поездки с дочерью?

А) Купить побольше таких яблок

Б) Чаще выбираться в сад с дочерью

В) Сохранить семью, помириться с женой

Г) Принял окончательное решение о разводе

6. По какой причине Толеп не встретился с Саду («Первый вагон»)?

А) Опоздало на вокзал

Б) Встретил друга в другом вагоне

В) «Не имел права» сидеть в первом вагоне

Г) Он вообще не хотел отправляться в поездку

7. Почему Булат («Штраф») пропускает в трамвай всех пассажиров?

А) Хитрит, не хочет платить за поездку

Б) Он воспитанный мальчик, поэтому пропускает всех вперед

В) Ждет друга, который опаздывает

Г) Не хочет стоять в тесноте внутри вагона

8. Почему Улан решил пропустить один день в школе («Два штрафных очка»)?

А) Он заболел

Б) Не хотел получить штрафное очко

В) Поспорил с Сарой

Г) Не хотел идти в школу, хотел прогулять

9. Найдите соответствия:

1) Сережа А) Добрый, отзывчивый, сердечный человек

2) Шурик Б) Одинокий, несчастный, очень добрый человек

3) Папа Сережи В) Трусливый, неблагодарный, бесчестный человек

4) Нина Георгиевна Г) «Правильный» человек​
Предмет: Геометрия, автор: AaceVentura