| Код | int dec2bin (const unsigned long inData) { struct stBin // структура (стек) для хранения двоичного числа { bool data; // само число ("true"= 1, "false"= 0) stBin *next; // указатель на следующее число }; unsigned long data= inData; // Дублируем входное десятичное число stBin *bin= new stBin; // Объявляем переменную каторая и будет содержать 2-ое число bin->data= data % 2 ? true : false; // Заносим первое значение (по правилу перевода числа с одной СИ в другую) bin->next= NULL; // Дно стека data= data / 2; // Изменяем значение исходного числа (по правилу перевода числа с одной СИ в другую) while (data) // До победного мучием дублированное число { stBin *node= new stBin; // Создаем новый узел node->data= data % 2 ? true : false; // Получаем значение (по правилу перевода числа с одной СИ в другую) node->next= bin; // Добавляем к созданному узлу все то, что уже накопилось bin= node; // Переприсваиваем, дублируем указатель (на узел) каторый стал верхом стека data= data / 2; // Изменяем значение исходного числа (по правилу перевода числа с одной СИ в другую) } while (bin) // Теперь вытаскиваем получившееся значения { printf ('%c', bin->data ? '1' : '0'); // Простой формат вывода stBin *node= bin; // Копируем указатель на верхний узел стека bin= bin->next; // Спускаемся на ухзел ниже delete node; // Убиваем нерадивый (ненужный), верхний узел } return 0; }
|
|