Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 1
1

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

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

Помогите пожалуйста перевести число из 2-ой сс в 10 сс.
Буду очень благодарен
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2016, 17:08
Ответы с готовыми решениями:

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

Перевод из двоичной системы счисления в десятичную
#include <iostream> #include <cmath> #include <cstring> #include <stdio.h> #include <stdlib.h>...

Перевод из двоичной системы счисления в десятичную
Почему самописная функция long long int From2to10(string s) { long long int r = 0; int i, j...

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

6
322 / 170 / 24
Регистрация: 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
1464 / 1172 / 551
Регистрация: 08.01.2012
Сообщений: 4,517
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
Модератор
Эксперт С++
11121 / 9162 / 5503
Регистрация: 18.12.2011
Сообщений: 24,468
30.03.2016, 18:01 4
MansMI, Вы перевели из двоичного строкового представления в двоичное бинарное представление и вместо if(*p=='1') n++; проще написать n+= *p-'0';
0
1464 / 1172 / 551
Регистрация: 08.01.2012
Сообщений: 4,517
30.03.2016, 18:09 5
тогда какие данные на входе?
0
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
30.03.2016, 18:54 6
Цитата Сообщение от MansMI Посмотреть сообщение
тогда какие данные на входе?
Ну, на входе задачи, как её сформулировали, должна быть символьная строка, что-то типа:
"10010011100011110001010101100000111011111000111111001100110 0110011100"

Как-то так
0
1464 / 1172 / 551
Регистрация: 08.01.2012
Сообщений: 4,517
30.03.2016, 19:05 7
сейчас у меня на 64 0/1, если мало, что должен продемонстрировать ТС: bigint или такую же немереную строку в десятичном виде?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2016, 19:05

Перевод из двоичной системы счисления в десятичную
Как перевести число из двоичной системы счисления в десятичную?

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

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

Рекурсивный перевод из двоичной системы счисления в десятичную
Вот мой код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std;...


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

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

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