С++ как перевести число из бит в цельное
У меня есть программа. (Смотрите 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).