jonnydo
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Уважаемые форумцы, помогите с такой задачкой: Суть задания: ввести с клавиатуры тип данных, из числа стандартных, предложенных Вами и по возможности в том числе и сплавающей запятой. Далее вводится система счисления, также из числа предложенных, и само данное с проверкой на корректность вводимых цифр и диапазона самого данного. Вывести внутреннее двоичное представление этого данного, используя поразрядные логические операции. Сделал ввод и и вывел их двоичное представление, но не догоняю зачем переводить в разные системы счисления, обьясните дураку что именно требуется сделать? Спасибо за помощь! Код программы Код: #include <iostream> #include <climits> #include <cstdlib> using namespace std; void print(const unsigned char* data, std::size_t size) { for(int i = 0; i < size; ++i) { unsigned char mask = 1 << (CHAR_BIT - 1); while(mask) { std::cout << ((data[i] & mask) ? 1 : 0); mask >>= 1; } std::cout << " "; } } int main(int argc, char* argv[]) { int action,p; cout<<"***MENU***\n"; cout<<"1 - Long int \n"; cout<<"2 - Float \n"; cout<<"3 - Double \n"; cout<<"ESC - exit\n"; cin >> action; //cout<<"Input notation\n"; switch(action) { case 1: { std::cout << "Input a long int: " << std::flush; long int i; std::cin >> i; print(reinterpret_cast<unsigned char*>(&i), sizeof(i)); std::cout << std::endl; break; } case 2: { std::cout << "Input a float: " << std::flush; float f; std::cin >> f; print(reinterpret_cast<unsigned char*>(&f), sizeof(f)); std::cout << std::endl; break; } case 3: { std::cout << "Input a double: " << std::flush; double d; std::cin >> d; print(reinterpret_cast<unsigned char*>(&d), sizeof(d)); std::cout << std::endl; break; } default: std::cout << "Invalid action" << std::endl; } system("pause"); return 0; } | | Всего записей: 3 | Зарегистр. 09-05-2018 | Отправлено: 21:18 09-05-2018 | Исправлено: jonnydo, 21:23 09-05-2018 |
|