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

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

19.04.2014, 20:33. Показов 14605. Ответов 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
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
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
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
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
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
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
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,258
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
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru