Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 270

Объяснить функцию проверки степени

14.04.2015, 23:52. Показов 698. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
int proverkastepeni(int n) {
  return !(n&(n-1));
}
Нашел вот такую функцию проверки степени, не совсем понимаю как она работает. Прошу объяснить
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.04.2015, 23:52
Ответы с готовыми решениями:

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

Объяснить код проверки строки на симметричность
Помогите пожалуйста разобрать код, как он выполняется #include "stdafx.h" #include <iostream> #include <cstring> ...

Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. Найти ошибку
Ребят, такая проблема, задание: Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. ...

2
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
14.04.2015, 23:55
работает только для проверки степени 2.
2^n содержит 1 на n месте, остальные 0. 2^n - 1 содержит n-1 единиц. Побитовая конъюнкция этих 2 чисел даст 0 => число является степенью 2, иначе нет.
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
15.04.2015, 00:09
C++
1
!(n&(n-1));
Возьмем n типа unsigned char (допустим, 8 бит.)
степени двойки:
dec_= bin
1___= 00000001
2___= 00000010
4___= 00000100
8___= 00001000
16__= 00010000
32__= 00100000
64__= 01000000
128_= 10000000

возьмем для примера число n равное 16. В двоичной системе это 00010000
Делаем n-1 получим 15. В двоичной системе это 00001111
Теперь делаем n&(n-1), то есть 16&15 = 00010000 & 00001111 = 0
и далее отрицание. То есть, если результат побитового И - ноль, то число является степенью двойки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2015, 00:09
Помогаю со студенческими работами здесь

Объяснить функцию
Добрый вечер всем. Хотел бы разузнать поподробнее что делает эта функция. Заранее прошу объясните каждую строку поэтапно. На языке Нуба......

объяснить функцию
Всем привет! Есть код: #include<conio.h> #include<iostream.h> class integer1 { int val; public: integer1(int v0...

Описать функцию, вычисляющую 2,3,4 степени числа A и возвращающую эти степени соответственно в переменных B,C,D
Описать функцию, вычисляющую 2,3,4 степени числа A и возвращающую эти степени соответственно в переменных B,C,D. С помощью этой функции...

Описать функцию, вычисляющую 2,3,4 степени числа A и возвращающую эти степени соответственно в переменных B,C,D
Описать функцию, вычисляющую 2,3,4 степени числа A и возвращающую эти степени соответственно в переменных B,C,D. C помощью этой функции...

Вывести на экран таблицу значений функции f(x)=x в 4 степени+3х в 3 степени +5х во второй степени+7 х=1,2..10
18. Вывести на экран таблицу значений функции f(x)=x в 4 степени+3х в 3 степени +5х во второй степени+7 х=1,2..10


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru