• ⚡️ Последний шанс: Вебинар по пентесту стартует через 30 минут!

    Друзья, ровно через 30 минут (8 июля в 19:00) начинается наш практический вебинар по пентесту и поиску уязвимостей!

    Если вы хотите:
    🕵️‍♀️ Узнать, как находить и эксплуатировать уязвимости в веб-приложениях.
    💡 Получить ценные инсайты от настоящего эксперта.
    🚀 Сделать решительный шаг в мир кибербезопасности.
    То этот вебинар для вас!

    Ведущий вебинара – Александр Медведев – эксперт с более чем 10-летним опытом в сфере информационной безопасности, пятикратный победитель Standoff и обладатель престижных сертификаций: OSWE, OSCP, PNPT, CEH, CWAPT.

    Успейте присоединиться! Зарегистрироваться сейчас

    Возникли сложности с регистрацией? Пишите нам: @Codeby_Academy
    Будем вас ждать!

Доработка программы

  • Автор темы Автор темы Kernigan
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kernigan

Уважаемы участники форума

Здесь представлена программа, преобразующая десятичное число в двоичное. Программа работоспособная, компилировалась в BC++ 3.1, KDevelop, но не лишена недостатков. Буду очень благодарен тем, кто поможет привести программу в соответствие с C++, а также, усовершенствовать
Код:
#include<iostream.h>
#include"string.h"
#include<conio.h>
#include<stdio.h>
//==========================================================
class CDecimalNumbers {
int dec;
int v;
int i;
public:
//constructor and destructor
CDecimalNumbers(int dnum);
//CDecimalNumbers();
//~CDecimalNumbers();
void tobinary();
};
//================================================================
CDecimalNumbers::CDecimalNumbers(int dnum)
{

dec = dnum;
v = 128;
}
//=================================================================
void CDecimalNumbers::tobinary()
{
for ( i= 1; i <= 8; i ++)
{
if (dec >= v)
{
cout << '1';
dec -= v;
}
else cout << '0';
v = v / 2;
}
}
//================================================================

int main()
{
int x;

cout << "Введите целое число от 0 to 255 ";
cin >> x;
CDecimalNumbers d(x);
cout << "Десятичному числу "<< x;
cout << "соответствует двоичное";

d.tobinary();

return 0;
}
.
 
Проверки, безусловно, нужны и важны, но я желал бы сначала усовершенствовать код, придать этому простому коду - элегантность.
 
Лучше будет переменные i и v объявить в самой функции tobinary(), а вместо

v = v / 2;

использовать

v = v >> 1 // побитовый сдвиг на 1 бит вправо, соответствует целочисленному делению на 2.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab