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

  • Автор темы 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;
}
.
 
K

Kernigan

Проверки, безусловно, нужны и важны, но я желал бы сначала усовершенствовать код, придать этому простому коду - элегантность.
 
S

SunSanych

Лучше будет переменные i и v объявить в самой функции tobinary(), а вместо

v = v / 2;

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!