Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/76: Рейтинг темы: голосов - 76, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 103

Двоичное число перевести в десятичное

19.04.2014, 20:33. Показов 14573. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Введите целое число в двоичной системе счисления и выведите его десятичный эквивалент.

Указание. Примените операции деления (/) и взятия по модулю (%) для отделения справа налево одного за другим «двоичного» числа.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.04.2014, 20:33
Ответы с готовыми решениями:

Перевести двоичное число в десятичное
у меня есть например ASCII код в двоичной системе какого то символа. как вывести это двоичное число чтоб на экране вывелась буква...

Требуется двоично-десятичное число перевести в десятичное
Помогите пожалуйста реализовать

Преобразовать введенное с клавиатуры двоичное восьмиразрядное число в десятичное
Преобразовать введенное с клавиатуры восьмиразрядное двоичное число в десятичное. Буду благодарен если сделаете правильно. Если не...

13
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
19.04.2014, 21:54
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include  <iostream>
#include <cmath>
using namespace std;
int main()
{
    int a,s=0;
    cin >> a;
for(int i=0; a; i++)
    {
        s+=int(a%10*pow(2.0,i));
        a/=10;
    }
    cout << s;
    system ("pause");
return 0;
}
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
19.04.2014, 22:08
LVV, А чем результат s отличается от исходного a?
0
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
20.04.2014, 07:12
Цитата Сообщение от zss Посмотреть сообщение
А чем результат s отличается от исходного a?
Пользователь при вводе, например, двоичного 1111 получает на выходе десятиричное 15.
(а каков алгоритм этого получения, и какого типа переменные использовал автор решения - не важно)

Хотя, согласно условию, должно вводиться целое число, и для его преобразования должны использоваться операции / и %. Что и соблюдено.
1
20.04.2014, 07:24

Не по теме:

Условие какое-то несуразное.
Ввод строкой был-бы естественней.

0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
20.04.2014, 09:12
Цитата Сообщение от LVV Посмотреть сообщение
Пользователь при вводе, например, двоичного 1111
У Вас int a;cin>>a;
соответственно оно водится как десятичное 1111=1*10^3+1*10^2+1*10+1
0
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
21.04.2014, 12:28
Цитата Сообщение от zss Посмотреть сообщение
У Вас int a;cin>>a;
соответственно оно водится как десятичное 1111=1*10^3+1*10^2+1*10+1
А Вы можете предложить способ ввода изначально двоичных чисел? Ну, таких, например, чтобы 11+10=101...
Для этого ведь нужно предварительно(предкомпилированно) задать собственный, отличный от стандартных (числовых-десятеричных, и строчных) тип переменных, прописать все арифметические действия для него... Новый заголовочный файл создавать вместо <iostream> какой нибудь <bitiostream> ???

По большому счету пользователь вводит лишь символы. А дальше уже дело обрабатывающей программы, как их воспринимать.
В данном случае просто происходит преобразование какого-то набора символов, который пользователь трактует как двоичное число, в стандартный, целочисленный-дестятеричный тип данных. И это, кажется, даже проще, чем использовать при вводе строковый/символьный тип данных.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
21.04.2014, 13:12
при вводе с потока по умолчанию числа трактуются как десятичные.
Есть манипуляторы для изменения типа dec, hex,oct.
Для двоичных данных манипулятора нет.
1
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
21.04.2014, 13:43
Цитата Сообщение от zss Посмотреть сообщение
при вводе с потока по умолчанию числа трактуются как десятичные.
Есть манипуляторы для изменения типа dec, hex,oct.
Для двоичных данных манипулятора нет.
И я о том же. Остаётся вводить либо недвоичное число (ранее представленное решение), либо строку (символы). По условию, требуется вводить число, значит первое решение (выше) более корректное.
Других способов кроме трёх представленных я не знаю. А Вы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
string s;
cin >> s;
int bit=0;
for(int i=s.length()-1; i>=0; i--)
    bit+=(s[i]-'0')*pow(2.0,double(s.length()-i-1));
    cout << bit << endl;
system ("pause");
 return 0;
}
или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
char s[100];
cin >> s;
int len;
for(len=0; s[len]!='\0'; len++);
 
int bit=0;
for(int i=len-1; i>=0; i--)
    bit+=(s[i]-48)*pow(2.0,double(len-i-1));
    cout << bit << endl;
system ("pause");
 return 0;
}
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,245
21.04.2014, 13:47
Уж лучше тогда строку, поскольку Вы введенное число интерпретируете как последовательность
независимых битов, а не как двоичное число.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
21.04.2014, 13:51
Цитата Сообщение от LVV Посмотреть сообщение
string s;
Цитата Сообщение от LVV Посмотреть сообщение
char s[100];
А если заполнять битовое множество?
0
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
21.04.2014, 14:02
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А если заполнять битовое множество?
Предложите вариант. Было бы интересно взглянуть.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
21.04.2014, 14:10
LVV, не. Что-то мне лениво огород городить.
0
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
21.04.2014, 15:27
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cmath>
#include <bitset>
using namespace std;
int main()
{
bitset<100> b;
b.reset(0);
cin >> b;
 
int len;
for(len=99; b[len]!=1; len--);
 
int s=0;
for(int i=0; i<=len; i++)
   s+=int(b[i])*pow(2.0,double(i));
cout << s;  
system ("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2014, 15:27
Помогаю со студенческими работами здесь

Требуется написать прогу которая преобразуют двоичное число в десятичное
Вообщем я пишу контрольную помогите плиз кто знает с использованием цикла for))) Добавлено через 16 секунд Язык С++

Написать программу, которая преобразует введенное с клавиатуры восьмиразрядное двоичное число в десятичное
Задание: Написать программу, которая преобразует введенное с клавиатуры восьмиразрядное двоичное число в десятичное. Написать на языке...

Перевести десятичное число в unicode
Есть программа, вводим десятичное число до 10 000 и отображает символ. Однако, когда ввожу, например 800 - пусто, 801 тоже ничего. С 880...

Как перевести десятичное число в двоичную
Зравствуйте, значит проблема у меня такая 1.Есть у меня число представленная в десятичной системе Допустим 35, мне его нужно перевести...

Перевести восьмеричное число в двоичное
имееться задача перевести восьмеричное число в двоичное с использованиям структуры с битовыми полями. Как? До этой задачи я даже незнал...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru