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

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

Войти
Регистрация
Восстановить пароль
 
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
#1

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

26.09.2012, 13:48. Просмотров 426. Ответов 4

Есть массив уже заполненный int mas2[j] нулями и единицами

Например так 0011101

Хочу его возвести(число) в 10ную степень

Делаю так

Начинаю с последнего элемента к первому, так как число попадает в массив наоборот,то есть не 0011101 как нужно,а 1011100

Далее хочу суммировать произведение элемента 0 или 1 на 2 в степени смотря от прохода по циклу(qas)

qa это размерность массива,количество эллементов в нем

C++
1
2
3
4
5
6
7
8
int qas=0;//степень возведения числа 2
     int sum=0;//сумма чисел 
     for(j=qa-1;j>=0;j--)
     {  
                 sum+=mas2[j]*pow((double)2,qas);//тут пытаюсь сложить сумму
                 qas++;
     }
         fprintf(save,"%d ",sum);//Не обращать внимание что сишная,смысл вопроса не в этом
Формулу сам придумал мож она не верна

Не верно считает вообще,как поправить?

Добавлено через 4 минуты
Пример для чисел

0 0 1 1 1 1 0 выдает 60 это неверно должно быть 30

0 0 1 1 1 0 1 выдает 92 это не верно должно быть 29

0 0 1 1 1 0 0 выдает 28 это верно

0 0 1 1 0 0 1 выдает 76 это не верно должно быть 25

Добавлено через 14 минут
ООО чуток не дотерпел,сам разобрался,надо двигаться было в другом направлении не

C++
1
for(j=qa-1;j>=0;j--)
а вот так

C++
1
for(j=0;j<qa;j++)
Хотя я пока в недоумении почему именно так
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 13:48     Переводи из 2ной в 10ную
Посмотрите здесь:

Из 2-ной в 10-ную систему - C++
Привет всем тем кто не пошел в школу или сидит на работе в интернете :) Есть код. Нужно из двоичного числа ( а и b ) сделать десятичное (...

Перевод из 8-ной в 10-ную систему счисления - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; using namespace std; int main() {{char S; int...

Перевод из 16-ной 10-ную систему счисления - C++
Народ помагите кто-нибудь написать програму на языке СИ для перевода числа из 16-ной в 10-ную систему счисления.Плиз оч прошу.)) ...

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

Вывести n-ную строку треугольника паскаля - C++
По условию нужно вывести н-ую строку треугольника Паскаля. Вот,что у меня получилось, но ничего не работает, в чем ошибка? #include...

Найти N-ную цифру натурального числа - C++
Федя выписывает натуральные числа: 1, 2, 3, ... . После того, как он написал N-ую цифру (N&lt;=2015) , у него кончились чернила. Какую цифру...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.09.2012, 14:40     Переводи из 2ной в 10ную #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
long To10(char *s)
{
   long a = 0;
   for(; *s; s++)
      a = (a << 1) + (*s - '0');
   return a;
}
 
int main()
{
   std::cout << To10("11001") << std::endl;
   std::cout << To10("11") << std::endl;
   std::cout << To10("1011") << std::endl;
   return 0;
}
Пaтрик
415 / 390 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
26.09.2012, 14:53     Переводи из 2ной в 10ную #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <string>
#include <functional>
 
int main()
{
   int arr[] = { 0, 0, 1, 1, 1, 0, 1 };
   std::string str;
   std::transform(std::begin(arr), std::end(arr), std::back_inserter(str), std::bind2nd(std::plus<int>(), '0'));
   std::cout << std::stoi(str, 0, 2);
   return 0;
}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.09.2012, 14:57     Переводи из 2ной в 10ную #4
C++
1
2
3
4
5
6
7
8
9
10
11
long To10(char *beg, char *s, int deg2)
{
   return s >= beg ? ((*s - '0') << deg2) + To10(beg, s - 1, deg2 + 1) : 0;
}
 
int main()
{
   char *s = "11001";
   std::cout << To10_(s, s + strlen(s) - 1, 0) << std::endl;
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 15:16     Переводи из 2ной в 10ную
Еще ссылки по теме:

Вывести информацию о покупателях, имеющих 10 %-ную скидку в магазине - C++
В магазине составлен список людей, которым выдана карта постоянного покупателя. Каждая запись этого списка содержит номер карточки, ФИО,...

Извлечение корня н-ной степени из числа - C++
Здравствуйте!!! Тут задачка такая: нужно извлечь корень н-ной степени из числа методом деления отрезка пополам. Я реализовал такой код: ...

Программа для перевода данного натурального числа в N-ную систему счисления - C++
у меня к вам нестандартная просьба... вот готовый код. Можете коротко расписать объяснения к каждой строке(строки ввода, вывода и...

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


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

Или воспользуйтесь поиском по форуму:
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
26.09.2012, 15:16  [ТС]     Переводи из 2ной в 10ную #5
А я все лабу дописал,тему закрыть можно))
Yandex
Объявления
26.09.2012, 15:16     Переводи из 2ной в 10ную
Ответ Создать тему
Опции темы

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