kkate4ka
@kkate4ka
глупенькая девочка

Как объясняются эти операции?

Это бинарное возведение в степень, нашла функцию, но не могу понять операции "--n", "n >>= 1". С последнем, это вроде как сдвиг вправо, но почему используется знак равно? Скорее всего вопрос глупый, но я не очень понимаю. И как работает (n&1). Если это битовые операции, но мы же не переводим десятичное число в двоичную систему. Как это получается? :о

int binpow (int a, int n)
{
	int res = 1;
	while (n)
		if (n & 1)
		{
			res *= a;
			--n;
		}
		else 
		{
			a *= a;
			n >>= 1;
		}
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
--n - короткая запись для n=n-1
n >>= 1 - короткая запись для n=n>>1

"Если это битовые операции, но мы же не переводим десятичное число в двоичную систему" - вы заблуждаетесь. Компьютер как раз переводит все числа в двоичную систему и хранит их в двоичной системе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы