Напишите программу которая обнуляет заданное количество последних бит числа

от admin

Ошибка сервера в приложении ‘/’.

Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.

Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег <customErrors> в файле конфигурации "web.config", который находится в корневом каталоге текущего веб-приложения. В теге <customErrors> следует задать атрибут "mode" со значением "Off".

Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут "defaultRedirect" тега конфигурации <customErrors> приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.

1647. Обнулить биты

Дано целые числа n и k . Обнулите в числе n его последние k бит и выведите результат. Рекомендуется сделать эту задачу без использования циклов.

Вход. Два числа n (0 ≤ n ≤ 2 31 – 1) и k (0 ≤ k ≤ 30).

Выход. Выведите число, полученное в результате обнуления k последних бит.

РЕШЕНИЕ

элементарная задача – битовые операции

Построим маску mask, в которой на последних k позициях будут стоять нули, а на остальных единицы. Искомый ответ равен битовой операции “and” входного значения n и маски mask .

Требуемую маску можно также получить, сдвинув число -1 (в битовом представлении все единицы) на k позиций влево. после чего k правых бит в нем примут значение 0.

Еще одно решение: можно сдвинуть число n на k бит вправо, а затем на k бит влево. То есть ответом будет значение ( n >> k) << k.

Ошибка в простейшем алгоритме

Нужно обнулить последние биты даного числа n. 0<=n<=2^31. Вводиться n, само число биты которого нужно обнулить, потом k, оно показывает сколько бит с конца обнулять. 0<=k<=30. Нельзя использовать циклы. Написал, но никак не хочет проходить 6 тестов из 50.

Читать:
Копировать css и svg в фотошопе что это

Использовал методику геометрической прогресии, чтобы сделать k нулей в числе L, а потом просто применил к даному числу, и к числу с вырезанными нужными нулями операцию &. Незнаю, почему не проходит 2 теста. Значительно повышал число L, но не в этом дело.

Name already in use

Даны 2 целых числа: A и B. Требуется вычислить их сумму.

Входные данные: Во входном потоке в единственной строке через пробел записаны два целых числа: A и B (−10^9≤a,b≤10^9).

Выходные данные: В выходной поток следует записать единственное целое число — сумму чисел A и B.

##1.2 Следующее четное Дано целое число n. Выведите следующее за ним четное число. При решении этой задачи нельзя использовать условную инструкцию if и циклы.

Входные данные: Вводится натуральное число.

Выходные данные: Выведите ответ на задачу.

##1.3.1 Задание по Android-практикуму

«Раскрасьте» TestPlatform по-своему.

##1.3.2 Младшая цифра числа Дано натуральное число N. Требуется определить младшую цифру в десятичной записи числа N. Входные данные

Во входном потоке в единственной строке записано натуральное число N (1≤N≤10^9). Выходные данные

В выходной поток следует записать единственное целое число — младшую цифру в десятичной записи числа N.

##1.4 Обнулить последние биты

Напишите программу, которая обнуляет заданное количество последних бит числа. Входные данные

Во входном потоке в единственной строке через пробел записаны два целых числа A (−2^31≤A≤2^31−1) и i (0≤i≤32). Выходные данные

В выходной поток следует записать единственное целое число — число A, у которого обнулены последние i бит.

Похожие статьи