С++ как перевести число из бит в цельное

У меня есть программа. (Смотрите c = 2, c = 3) Я хочу вывести цельное число, но не знаю как его перевести из битового состояния в обычное. Что я делаю не так?

#include <iostream>
#include <bitset>
int main()
{
    long long a;
    int k;
    std::cin >> a >> k;
    int c;
    std::cin >> c;
    if (c == 1) {
        if (bool bit = (a >> k) & 1) std::cout << '1';
        else std::cout << '0';
    }
    else if (c == 2) {
        std::bitset <64> A(a);
        A.set(k);
        std::cout << A;
    }
    else if (c == 3) {
        std::bitset <64> A(a);
        A.reset(k);
        std::cout << A;
    }
 }

Ответы (1 шт):

Автор решения: HolyBlackCat

Перевести в число вызовом A.to_ullong().

Но вообще, использовать здесь std::bitset - немного жульничество. Попробуйте сделать это напрямую с помощью битовых операций.

Еще, раз все равно не используете bit, замените if (bool bit = (a >> k) & 1) на if ((a >> k) & 1).

→ Ссылка