@thisall

Как вывести битовое представление числа?

#include <iostream>

using namespace std;

int main() {
    char value;

    cout << "Введите произвольное число от -128 до 127: ";
    cin >> value;

    cout << "Битовое представление числа " << value << " = " << bitset<sizeof(value) * CHAR_BIT>(value) << endl;
}


Написал такой код и проверяю с числом 12, должно появится 1100, а если 8 битном то 00001100, подскажите, почему не работает этот код ?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Вам смешивает карты оператор >>, примененный к cin. Он считает, что если вы вводите один байт, его надо интерпретировать как один единственный символ из входного потока.

Проще всего программу переделать как-то так

#include <bitset>
#include <iostream>
#include <climits>

using namespace std;

int main() {
    int16_t temp;

    cout << "Введите произвольное число от -128 до 127: ";
    cin >> temp;
    
    char value=temp;

    cout << "Битовое представление числа " << value << " = " << bitset<sizeof(value) * CHAR_BIT>(value) << endl;
}


IDEONE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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