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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 248, средняя оценка - 4.89
Riyaz
Сообщений: n/a
#1

Перевод чисел из двоичной в десятичную систему счисления - C++

14.11.2008, 01:00. Просмотров 32086. Ответов 6
Метки нет (Все метки)

Задача в курсаче... =( Помогите пожалуйста
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2008, 01:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод чисел из двоичной в десятичную систему счисления (C++):

перевод чисел из двоичной в десятичную систему счисления - C++
перевод чисел из двоичной в десятичную систему счисления:help:

Перевод чисел из двоичной в десятичную систему счисления с дробной частью - C++
Нужно написать программу которая бы переводила числа с дробной частью из 2ичной системы в 10ричную . Не знаю даже как подступиться к...

Перевод числа из двоичной в десятичную систему счисления на С++ - C++
Доброго всем дня! Мне необходимо перевести число из двоичной в десятичную с.с. с помощью рекурсии и только Вот что у меня...

Перевод чисел из двоичной в десятичную систему - C++
Добрый день! Помогите с заданием. Есть файл в котором содержится двоичный код к примеру (0110100001101001) Надо сделать программу...

Перевод вещественных чисел из двоичной системы счисления в десятичную - C++
Перевод вещественных чисел из двоичной системы счисления в десятичную По такой схеме

Нужно создать функцию по изменению чисел из двоичной в десятичную систему счисления - C++
Не могу создать функцию по изменению числа из двоичной в десятичную систему счисления.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
14.11.2008, 01:21 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <conio.h>
int main () {
    char c;
    int result=0;
    while(scanf("%c",&c) ) {
        if( (c<'0') || (c > '1') ) break;
        result<<=1;
        result+=c-'0';
    };
    printf("\n%d",result);
    getch();
};
Рияз
Сообщений: n/a
17.11.2008, 16:32 #3
Распиши пожалуйста цикл while по-строчно...
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,885
Завершенные тесты: 1
17.11.2008, 16:33 #4
блин, ну неужели трудно разобраться, уже и код написали, теперь еще и построчно расписывай, совесть хотя бы минимально поимейте товарищи...
dim206
0 / 0 / 0
Регистрация: 16.03.2011
Сообщений: 15
18.03.2011, 00:47 #5
Ребят помогите разобраться. Я хочу применить этот код в C++Builder 6 число в 2сс вводиться Edit1 как обмануть while(scanf("%c",&c) ) ?
anele
1 / 1 / 0
Регистрация: 01.05.2011
Сообщений: 10
17.06.2011, 19:29 #6
программа - перевод из двоичной в десятичную и обратно. Числа считываются из файла.
Компилятор выдает ошибку в проверке числа на двоичность-десятичность (ищу вхождения 2 или 3 и так далее). Помогите исправить)

и еще правильна ли подпрограмма toDec (писала не сама)? Вроде ошибок компиляции нет, но когда открывается окно с программой ничего не появляется и при нажатии на клавишу окно закрывается.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <iostream>
#include <conio.h>
#include <fstream>
#include <cmath>
#include <sstream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
 
string toBin(int x1)
{    string str;
    assert(x1 >= 0);
    static const char digits[] = "0123456789";
 
    while(x1)
    {
        str = string(1, digits[x1 % 2]) + str;
        x1 /= 2;
    }
    return str;
}
 
 
 
 
float toDec2(string x)
{
int w,k,v,j,q,len,y,y1;
float a,b,c;
string s,z;
string str1,str2;
a=0;
q=-1;
 
w=x.find(".");
len=x.length();
str1=x.substr(1,w-1);//вырезали все до точки
v=str1.length()-1;
 
for (k=1;k<str1.length();k++)
{
    s=str1[k];
    y=atoi(s.c_str());//преобразуем в число
    v--;
    a=a+y*(pow(2.0,v));//посчитали сумму до точки
}
 
str2=x.substr(w,len-w);
for(j=1;j<str2.length();j++)
{
    z=str1[j];
    y1=atoi(z.c_str());//преобразуем все после точки
    q--;
    b=b+y1*(pow(2.0,q));//сумма после точки
}
c=a+b;
return c;
}
 
 
 
 
/*float toDec(int x1)
{
int k;
float result;
string x;
 
 result = 0;
 for (k=1; k<x.length(); k++)
{
 result += 1 << (x.length() - k);
}
return result;}*/  
 
 
 
int main ()
{
    ifstream fail;
             string x;
 
             int i=-1,j,x1;
 
    fail.open("lol.txt");
    stringstream conv;
 
 
    while (!fail.eof())
    {
        //std::getline(fail, x);
            fail >>x;
            conv<<x;
            conv>>x1;
            conv.clear();
    }
   fail.close();
 
 
//написать проверку на десятичность или двоичность
 
 
if ((x.find("2")!=-1) or (x.find("3")!=-1) or (x.find("4")!=-1) or (x.find("5")!=-1) (x.find("6")!=-1) (x.find("7")!=-1) (x.find("8")!=-1) (x.find("9")!=-1))
{cout << toBin(x1) << endl;}
else
 {//cout<<toDec(x1)<<endl;
 cout<<toDec2(x1)<<endl;}
 
    getch();
    return 0;
}
Negent
9 / 9 / 1
Регистрация: 01.11.2011
Сообщений: 21
09.12.2011, 17:43 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Мой код:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
 
#include <iostream>
 
using namespace std;
 
void main ()
{
    cout<<"Two-position system to ten-position system\n";
    //Ввод числа
    cout<<"Enter digits:\n";
    int digit;
    cin>>digit;
    int i = 0;
    int digitT = digit;
    int rest = 1;
    //Определение числа разрядов
    while (digitT >= 1 && rest <= 1)
        {
            rest = digitT % 10;
            digitT = digitT / 10;
            i = i + 1;
        }
    int two = 1;
    int sum = 0;
    digitT = digit;
    if (rest>1) 
        {
            //Проверка на двоичность
            cout<<"It's not two-position system!\n";
        }
    else
        {
            //Цикл выполняется, если число двоичное
            while (i > 0)
                {
                    rest = digitT % 10;
                    digitT = digitT / 10;
                    sum = sum + rest * two;
                    two = two * 2;
                    i = i - 1;
                }
            //Вывод результатов
            cout<<"Digits: \n"
                    <<"2-p: "<<digit<<endl
                        <<"10-p: "<<sum<<endl;
        }
    system ("pause");
}
Авось, кому-нибудь пригодится!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 17:43
Привет! Вот еще темы с ответами:

Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно - C++
Нужно две программы, одна реализует перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки, а другая...

Перевод чисел из системы остаточных классов в десятичную систему счисления - C++
Братья, нужна помощь по переводу чисел из системы остаточных классов в десятичную систему счисления. Я пробовал писать, но у меня только в...

Перевод в из двоичной в десятичную систему - C++
Народ! Надо реализовать программу, которая считывает строку в виде двоичного числа и переводит ее десячтичную! Алгоритм я помню перевода...

Перевод из двоичной системы счисления в десятичную - C++
Я создал программу, но вот она выдает размерность введенного массива, вместо десятичного числа. Ошибки я найти не могу. Вот сам код: ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.12.2011, 17:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru