Вам смешивает карты оператор >>, примененный к 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