Форум программистов, компьютерный форум CyberForum.ru

Перевод из 2-ичной в 10-ую - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Jack777
0 / 0 / 0
Регистрация: 14.04.2009
Сообщений: 4
14.04.2009, 22:17     Перевод из 2-ичной в 10-ую #1
Перевод числа из двоичной системы счисления в десятеричную.
Помогите пожалуйста написать код к этой программе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ostgals
 Аватар для ostgals
873 / 668 / 14
Регистрация: 23.01.2009
Сообщений: 1,565
14.04.2009, 23:03     Перевод из 2-ичной в 10-ую #2
C++
1
2
3
4
5
6
7
8
9
10
11
int bin_to_int(char* bin)
{
   int r = 0, i = 0;
   while (bin[i] != 0)
   {
      if (bin[i] == '1') r |= 1;
      r << 1;
      i++;
   }
   return r;
}
gtr-x-ite
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 7
26.01.2011, 23:09     Перевод из 2-ичной в 10-ую #3
чего то не хватает. ошибки выдает. я на Visual C++
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
26.01.2011, 23:18     Перевод из 2-ичной в 10-ую #4
ошибки при компиляции или при счете?

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# include <iostream>
int bin_to_int(char* bin);
int main (){
    char *test = "01";
    std::cout << bin_to_int(test)<< std::endl;
    system("pause");
}
 
int bin_to_int(char* bin)
{
   int r = 0, i = 0;
   while (bin[i] != 0)
   {
      if (bin[i] == '1') r |= 1;
      r << 1;
      i++;
   }
   return r;
}
никаких ошибок не возникает .. vs 2008 стоит компилятор
gtr-x-ite
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 7
26.01.2011, 23:35     Перевод из 2-ичной в 10-ую #5
NiRamz, с твоим кодом он мне не понятный расчет делает. или здесь нужно что то дописать? мне нужно 010111(2я) = в 10ю
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
27.01.2011, 07:41     Перевод из 2-ичной в 10-ую #6
Цитата Сообщение от gtr-x-ite Посмотреть сообщение
с твоим кодом он мне не понятный расчет делает
я просто привел пример использования кода ostgals
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <conio.h>
int main () {
    char c;
    int result=0;
    while(scanf("%c",&c) ) {
        if( (c<'0') || (c > '1') ) break;
        result<<=1;
        result+=c-'0';
    };
    printf("\n%d",result);
    getch();
};
вот тут все работает. 10011 = 19
Yandex
Объявления
27.01.2011, 07:41     Перевод из 2-ичной в 10-ую
Ответ Создать тему
Опции темы

Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru