Пусть дано какое-то число. необходимо обнулить некоторые биты, не трогая все остальные, за минимальное количество операций. по идее, можно сделать так a = a and (not (1001)); поставив единицы на места, которые нужно обнулить. но можно как-то покороче? (да, это получится длинно) язык человеческий или паскаль.
163
417
Ответы на вопрос:
пусть нужно обнулить какой-либо бит в переменной типа byte (например, бит 3). определим сначала число, содержащее единицы во всех битах, кроме третьего. максимальное число, которое можно записать в тип byte, равняется 255. чтобы в нем обнулить третий бит, вычтем из этого числа третью степень числа 2 (255-8=247). если это число логически умножить на a, то его единицы никак не скажутся на состоянии переменной a, а нуль в третьем бите независимо от значения третьего бита переменной a даст в результате 0. итак, имеем a: = a and (255-8). аналогично можно обнулить несколько битов.
Популярно: Информатика
-
Veronichkadyi24.05.2021 11:45
-
polina134710.09.2021 19:36
-
starceva8304.03.2020 18:15
-
Tet4ip06y26.04.2021 20:46
-
моллск11.04.2021 17:49
-
karrygreenk18.05.2023 02:24
-
fyxfhltn27.12.2020 08:40
-
КристинаМазова08.06.2023 22:15
-
GoodArtur14.07.2022 05:36
-
ulianadmytryk104.04.2022 15:31