С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
IYIurasaki
3 / 3 / 0
Регистрация: 05.11.2013
Сообщений: 12
#1

Перевод из двоичной системы в десятичную, задача 2.30 "Как программировать на С++" - C++

23.11.2013, 20:34. Просмотров 1108. Ответов 6
Метки нет (Все метки)

Здравствуйте! Не могу решить задачу из книги.

Задача

Введите целые данные, содержащие только нули и единицы (т.е. «двоичные» целые), и напечатайте их десятичный эквивалент. (Подсказка. Используйте операции деление и вычисления остатка, чтобы «отрывать» разряды «двоичного» числа по одному справа налево. В десятичной системе самая правая цифра имеет позиционное значение 1, следующая цифра слева имеет позиционное значение 10, затем 100, затем 1000 и т.д.; в двоичной системе чисел самая правая цифра имеет позиционное значение 1, следующая цифра слева имеет позиционное значение 2, затем 4, затем 8 и т.д. Таким образом, десятичное число 234 может быть представлено как 4*1 + 3*10 + 2*100. Десятичным эквивалентом двоичного 1101 является 1*1 + 0*2 + 1*4 + 1*8 или 1 + 0 + 4 + 8 или 13.)


Я так понимаю, сначала нужно посчитать количество цифр в числе:

C++
1
2
3
4
5
6
7
8
cin >> chislo;
k = 0;
while (chislo >= 1)
{
     chislo /=  10;
     k++;
};
cout<<k;
Далее отделить каждую цифру и куда-то записать (куда?) Неужели для каждой цифры нужна отдельная переменная?

Я нашла еще одну формулу перевода из двоичной системы в десятичную: 1001110102=(1*2)^8+(0*2)^7+(0*2)^6+(1*2)^5+(1*2)^4+(1*2)^3+(0*2)^2+(1*2)^1+(0*2)^0=31410

Значит, степень первой цифры равна n-1, второй n-2, последней n-n.

Как все это реализовать? Я ума не приложу. Помогите пожалуйста!

Добавлено через 4 часа 8 минут
Люди, помогите кто-нибудь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2013, 20:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из двоичной системы в десятичную, задача 2.30 "Как программировать на С++" (C++):

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

Перевод из двоичной системы счисления в десятичную - C++
Программа не работает для отрицательных чисел. Помогите найти ошибку. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; ...

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

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

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

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

6
Max Dark
шКодер самоучка
1852 / 1652 / 603
Регистрация: 09.10.2013
Сообщений: 3,678
Записей в блоге: 6
Завершенные тесты: 2
23.11.2013, 21:14 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
int main() {
    using std::cout;
    using std::cin;
    using std::endl;
 
    long int binary;
    long int result = 0;
 
    cout<<"Enter binary number";
    cin>>binary;
 
    while(binary != 0) {
        result <<=1;  // битовый сдвиг(умножение на 2)
        result | = ((binary%10) == 1 ? 1 : 0); //(битовое или)
        binary /= 10;
    }
    cout<<"dec number is"<<result<<endl;
    return 0;
}
2
IYIurasaki
3 / 3 / 0
Регистрация: 05.11.2013
Сообщений: 12
23.11.2013, 22:01  [ТС] #3
Цитата Сообщение от Cra3y Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
int main() {
    using std::cout;
    using std::cin;
    using std::endl;
 
    long int binary;
    long int result = 0;
 
    cout<<"Enter binary number";
    cin>>binary;
 
    while(binary != 0) {
        result <<=1;  // битовый сдвиг(умножение на 2)
        result | = ((binary%10) == 1 ? 1 : 0); //(битовое или)
        binary /= 10;
    }
    cout<<"dec number is"<<result<<endl;
    return 0;
}
Спасибо, но нужно стелать без

C++
1
2
3
 using std::cout;
    using std::cin;
    using std::endl;
, я еще не знаю, что это такое. И еще вопрс, что значит <<=1 и знак | ?
Ничего не понятно Если следовать формуле, то в степень можно возводить через
C++
1
for (int stepen = KolTsifr - 1; stepen >= 0; stepen--)
? И как возводить каждую цифру в цикле?
Извините, что загружаю
1
Alex5
1102 / 763 / 119
Регистрация: 12.04.2010
Сообщений: 1,934
23.11.2013, 22:13 #4
Cra3y,
Цитата Сообщение от Cra3y Посмотреть сообщение
while(binary != 0) {
result <<=1; // битовый сдвиг(умножение на 2)
result | = ((binary%10) == 1 ? 1 : 0); //(битовое или)
binary /= 10;
}
Если binary == 100, то result == 1.
Если binary == 110, то result == 3.
Если binary == 1000, то result == 1.
1
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.11.2013, 22:16 #5
Цитата Сообщение от IYIurasaki Посмотреть сообщение
Спасибо, но нужно стелать без
C++
1
2
3
using std::cout;
using std::cin;
using std::endl;
Удали и напиши после строки #include <string> строку using namespace std;
1
Alex5
1102 / 763 / 119
Регистрация: 12.04.2010
Сообщений: 1,934
23.11.2013, 22:21 #6
IYIurasaki, Перевод из двоичной системы в десятичную
2
IYIurasaki
3 / 3 / 0
Регистрация: 05.11.2013
Сообщений: 12
24.11.2013, 16:21  [ТС] #7
Спасибо, но все равно это не то. Нужно сделать без строк, массивов и т.д. ((
1
24.11.2013, 16:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 16:21
Привет! Вот еще темы с ответами:

Перевод вещественного числа из двоичной системы в десятичную c++ - C++
У меня есть число long double,например 15.375. я его перевёл в двоичную систему:010000000000001011110110000....00 Как перевести...

Рекурсивный перевод из двоичной системы счисления в десятичную - C++
Вот мой код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; int f(int Num) { static int...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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