Форум программистов, компьютерный форум CyberForum.ru

Помогите переписать программу с С на С++ (Система счисления) - C++

Восстановить пароль Регистрация
 
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
03.02.2012, 22:33     Помогите переписать программу с С на С++ (Система счисления) #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>   
#include <math.h>   
  
void dvoich(int x1)   
{  
    int i, b;  
    long c = 0;  
     for(i=0;x1 > 0;i++)  
     {
        b = x1 % 2;  
        x1 = (x1-b)/2;
        c += b * pow(10,i);
    }
 
    printf("\nDvoichnoe chislo: %d",c);   
}   
  
void main()   
{
    int a;  
    printf("Vvedite desyatichnoe chislo:");  
    scanf("%d",&a);  
     dvoich(a);  
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 23:18     Помогите переписать программу с С на С++ (Система счисления) #2
Цитата Сообщение от jock Посмотреть сообщение
Помогите переписать программу с С на С++ (Система счисления)
Я позволил себе немного модернезировать код для лучшего понимания что в нём происходит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <cmath>
using namespace std;
 
long DecToBin(int val)
{
    long pwr = 0;
    long add = 0;
    long ret = ((0 < val%2) ? 1 : 0);
    while(0 < (val /= 2))
    {
        pwr = pwr + 1;
        add = pow(10,pwr);
        if(1 < val)
            add *= ((0 < val%2) ? 1 : 0);
        ret = ret + add;
    }
    return ret;
}
 
int main()
{
    int val;
    while(true)
    {
        cout<<"Enter value : ";
        cin>>val;
        cout<<"Dec to bin  : "<<DecToBin(val)<<"\n";
    }
    system("pause");
    return 0;
}
Миниатюры
Помогите переписать программу с С на С++ (Система счисления)  
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 23:22     Помогите переписать программу с С на С++ (Система счисления) #3
Если же word-to-word то вот код С++ на основе приведенного в качестве базового
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>   
#include <cmath>   
using namespace std;
  
void dvoich(int x1)   
{  
    int i, b;  
    long c = 0;  
    for(i=0;x1 > 0;i++)  
    {
        b = x1 % 2;  
        x1 = (x1-b)/2;
        c += b * pow(10,i);
    }
    cout<<"\nDvoichnoe chislo: "<<c<<endl;   
}   
  
int main()   
{
    int a;  
    cout<<"Vvedite desyatichnoe chislo : ";  
    cin>>a;  
    dvoich(a);  
    system("pause");
    return 0;
}
kobi23
1 / 1 / 0
Регистрация: 28.12.2011
Сообщений: 14
03.02.2012, 23:24     Помогите переписать программу с С на С++ (Система счисления) #4
Тут вроде всего то заменить только вывод и ввод.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>   
#include <math.h>
using namespace std;
 
void dvoich(int x1)   
{  
    double i, b;  
    int c = 0;  
    for(i=0;x1 > 0;i++)  
    {
        b = x1 % 2;  
        x1 = (x1-b)/2;
        c += b * pow(10,i);
    }
 
    cout << "\nDvoichnoe chislo: "<< c <<endl ;   
}   
  
int main()   
{
    int a;  
    cout << "Vvedite desyatichnoe chislo: ";  
    cin >> a;  
    dvoich(a);  
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 23:32     Помогите переписать программу с С на С++ (Система счисления) #5
kobi23,
Цитата Сообщение от kobi23 Посмотреть сообщение
#include <math.h>
- такая запись в плюсах недопустима, в них используется новый стиль заголовков
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
#include <cmath>
Цитата Сообщение от kobi23 Посмотреть сообщение
dvoich(a); *
* * * * return 0;
- где стоп-точка вконце или надо чтобы программа мигнув тут же закрылась?
не просто так
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
system("pause");
ввёл - функция организует стоп-точку до нажатия любой клавиши клавиатуры, а иначе запустив экзешник не из студии с удивлением увидим что он мигнул и всё...
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
03.02.2012, 23:36     Помогите переписать программу с С на С++ (Система счисления) #6
Ну или вообще ни4его не писать )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<stdlib.h>
using namespace std;
main()
{
      char ch[25];
      int a;  
      cout<<"Vvedite desyatichnoe chislo : ";
      cin>>a;
      itoa(a, ch, 2);  
      cout<<"Dvoichnoe chislo: "<<ch<<endl;
      system("pause");
      return 0;
}
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
03.02.2012, 23:42  [ТС]     Помогите переписать программу с С на С++ (Система счисления) #7
О! Нашел ошибку у себя, неправильно переводит, переменная с должна быть равна 1...
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
03.02.2012, 23:44     Помогите переписать программу с С на С++ (Система счисления) #8
Правда, не всюду компилится - в ANCI-C itoa нету... Поэтому лучше просто знать, что можно и так перевести...
-=ЮрА=-
Заблокирован
Автор FAQ
04.02.2012, 00:10     Помогите переписать программу с С на С++ (Система счисления) #9

Не по теме:

Цитата Сообщение от jock Посмотреть сообщение
О! Нашел ошибку у себя, неправильно переводит, переменная с должна быть равна 1
- поработай лучше с моим первым кодом...
На счёт ничего не писать советую посмотреть в сторону std::hex std::oct...



Добавлено через 8 минут
jock, вот откопал тебе кодик с манипуляторами
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream> 
using namespace std;
template < typename T >
inline T highbit(T& t)
{
    return t = (((T)(-1)) >> 1) + 1;
}
 
template < typename T >
std::ostream& bin(T& value, std::ostream &o)
{
    for ( T bit = highbit(bit); bit; bit >>= 1 )
    {
        o << ( ( value & bit ) ? '1' : '0' );
    }
    return o;
}
 
int main() 
{
    unsigned long value = 12345678;
    cout << "hex: " << std::hex << value << endl;
    cout << "dec: " << std::dec << value << endl;
    cout << "oct: " << std::oct << value << endl;
    cout << "bin: ";
    bin(value, std::cout);
    cout << endl;
    return 0; 
 }
hex: bc614e
dec: 12345678
oct: 57060516
bin: 00000000101111000110000101001110
Press any key to continue
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2012, 00:46     Помогите переписать программу с С на С++ (Система счисления)
Еще ссылки по теме:

Помогите переписать программу без использования индексации C++
Система счисления C++
Переписать программу, выводящую таблицу умножения в n-ной системе счисления, не используя string C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
04.02.2012, 00:46  [ТС]     Помогите переписать программу с С на С++ (Система счисления) #10
Спасибо!
Yandex
Объявления
04.02.2012, 00:46     Помогите переписать программу с С на С++ (Система счисления)
Ответ Создать тему
Опции темы

Текущее время: 10:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru