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

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

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

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

30.03.2016, 17:08. Просмотров 458. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста перевести число из 2-ой сс в 10 сс.
Буду очень благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2016, 17:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перевод из двоичной системы счисления в десятичную (C++):

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

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

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

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

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

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

6
Olej
161 / 170 / 20
Регистрация: 25.03.2012
Сообщений: 712
30.03.2016, 17:50 #2
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
// [2] => [10]: от младшего к старшему
int main() {
   char buf[ 80 ];
   while( 1 ) {
      printf( "введите двоичное представление числа: ");
      if( !fgets( buf, sizeof( buf ) - 1, stdin ) ) break;
      if( index( buf, '\n' ) != NULL )
         *index( buf, '\n' ) = '\0';
      int j;
      for( j = 0; j < strlen( buf ); j++ )
         if( buf[ j ] != '0' && buf[ j ] != '1' ) {
            printf( "ошибочный ввод\n" );
            break;
         }
      if( j != strlen( buf ) ) continue;
      unsigned long inp = 0, mask = 1;
      for( j = strlen( buf ) - 1; j >= 0; j-- ) {
         if( '1' == buf[ j ] ) inp += mask;
         mask <<= 1;
      }
      printf( "число: %s => %lu : %lo : %lX\n",
              buf, inp, inp, inp );
   }
   return 0;
}
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
// [2] => [10]: от старшего к младшему (схема Горнера)
int main() {
   char buf[ 80 ];
   while( 1 ) {
      printf( "введите двоичное представление числа: ");
      if( !fgets( buf, sizeof( buf ) - 1, stdin ) ) break;
      if( index( buf, '\n' ) != NULL )
         *index( buf, '\n' ) = '\0';
      int j;
      for( j = 0; j < strlen( buf ); j++ )
         if( buf[ j ] != '0' && buf[ j ] != '1' ) {
            printf( "ошибочный ввод\n" );
            break;
         }
      if( j != strlen( buf ) ) continue;
      unsigned long inp = 0;
      for( j = 0; j < strlen( buf ); j++, inp <<= 1 ) {
         inp += '1' == buf[ j ]? 1 : 0; // схема Горнера
      }
      inp >>= 1;
      printf( "число: %s => %lu : %lo : %lX\n",
              buf, inp, inp, inp );
   }
   return 0;
}
Код - чистый C (потому что там специфика C++ не нужна), если нужно - переведёте сами ... хотя и компилироваться и выполняться и так будет.
0
MansMI
1375 / 1154 / 340
Регистрация: 08.01.2012
Сообщений: 4,509
30.03.2016, 17:57 #3
как-то так, не тестил
C++
1
2
3
4
5
6
7
8
9
10
11
char bin[100];
cout<<"Bin:";
cin>>bin;
long long n=0;
for(char *p=bin; *p; p++)
if(*p=='0' || *p=='1')
{
    n<<=1;
    if(*p=='1') n++;
}
cout<<n;
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
30.03.2016, 18:01 #4
MansMI, Вы перевели из двоичного строкового представления в двоичное бинарное представление и вместо if(*p=='1') n++; проще написать n+= *p-'0';
0
MansMI
1375 / 1154 / 340
Регистрация: 08.01.2012
Сообщений: 4,509
30.03.2016, 18:09 #5
тогда какие данные на входе?
0
Olej
161 / 170 / 20
Регистрация: 25.03.2012
Сообщений: 712
30.03.2016, 18:54 #6
Цитата Сообщение от MansMI Посмотреть сообщение
тогда какие данные на входе?
Ну, на входе задачи, как её сформулировали, должна быть символьная строка, что-то типа:
"100100111000111100010101011000001110111110001111110011001100110011100"

Как-то так
0
MansMI
1375 / 1154 / 340
Регистрация: 08.01.2012
Сообщений: 4,509
30.03.2016, 19:05 #7
сейчас у меня на 64 0/1, если мало, что должен продемонстрировать ТС: bigint или такую же немереную строку в десятичном виде?
0
30.03.2016, 19:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2016, 19:05
Привет! Вот еще темы с ответами:

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

Перевод из двоичной системы счисления в десятичную с плавающей запятой - C++
Помогите найти ошибки в коде. Выводит не верный результат при введенных данных (11.1 или 11.01 или 11.001 и тд) неверность заключается в...

Перевод целого (дробного) числа из двоичной системы счисления в десятичную - C++
Здравствуйте. Написали программу в С++, но считает не все значения. помогите найти ошибку. #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную) - C++
Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную). ...


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

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

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