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

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

19.04.2014, 20:33. Показов 14496. Ответов 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
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
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
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
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
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
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
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru