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

Тема в разделе "Общие вопросы по С и С++", создана пользователем Kernigan, 27 июн 2006.

Статус темы:
Закрыта.
  1. Kernigan

    Kernigan Гость

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

    Здесь представлена программа, преобразующая десятичное число в двоичное. Программа работоспособная, компилировалась в BC++ 3.1, KDevelop, но не лишена недостатков. Буду очень благодарен тем, кто поможет привести программу в соответствие с C++, а также, усовершенствовать
    Код (Text):
    #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;
    }
    .
     
  2. ????

    ???? Гость

    Для: Kernigan
    а где проверки?
     
  3. Kernigan

    Kernigan Гость

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

    SunSanych Well-Known Member

    Регистрация:
    28 июн 2006
    Сообщения:
    71
    Симпатии:
    0
    Лучше будет переменные i и v объявить в самой функции tobinary(), а вместо

    v = v / 2;

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

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

Поделиться этой страницей