Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 10:20   #1
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию Алгоритм разложения числа на цифры

Необходим алгоритм разложения числа на цифры. у меня есть кое-что на примете, но получается разложить число, в котором не больше 9 цифр.
Код:
long y1=100000000;
.
.
.
.
n1=binary%10;
n2=(binary%100-n1)/10;
n3=(binary%1000-n1)/100;
n4=(binary%10000-n1)/1000;
n5=(binary%100000-n1)/10000;
n6=(binary%1000000-n1)/100000;
n7=(binary%10000000-n1)/1000000;
n8=(binary%100000000-n1)/10000000;
n9=(binary%1000000000-n1)/y1;
r= (n9*256)+(n8*128)+(n7*64)+(n6*32)+(n5*16)+(n4*8)+(n3*4)+(n2*2)+(n1*1);
Это алгоритм перевода двоичного числа в десятичное.
Но! Если я пытаюсь сделать перевод числа с 10 цифрами, то компилятор ругается на превышение. То есть он ругается на число 1000000000. Как мне сделать это все по человечески?

Последний раз редактировалось Stilet; 26.12.2010 в 18:15.
Диман56 вне форума Ответить с цитированием
Старый 26.12.2010, 12:20   #2
coinkrsk
пыжашийся нуб
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 93
По умолчанию

Тебе интересна алгоритмическая суть задачи, или просто ее решение? Есть нужно дернуть цифры из числа, то создай поток ввода вывода (stringstream какой-нибудь), выведи туда свое чисто, а потом посимвольно считай.

Последний раз редактировалось coinkrsk; 26.12.2010 в 12:30.
coinkrsk вне форума Ответить с цитированием
Старый 26.12.2010, 17:40   #3
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Код:
n1=binary%10;
n2=binary/10;
n3=n2%10;
n4=n2/10;
n5=n4%10;
n6=n4/10;
n7=n6%10;
n8=n6/10;
n9=n8%10;
n10=n8/10;
n11=n10%10;
n12=n10/10;
n13=n12%10;
n14=n12/10;
n15=n14%10;
n16=n14/10;
n17=n16%10;
n18=n16/10;
n19=n18%10;
n20=n18/10;
r=n19*512+n17*256+n15*128+n13*64+n11*32+n9*16+n7*8+n5*4+n3*2+n1*1;
Вот новый алгоритм. в принципе работает правильно, меня все устраивает. Всем спасибо)

Последний раз редактировалось Stilet; 26.12.2010 в 18:15.
Диман56 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
у числа вывести цифры по возрастан Артл Помощь студентам 3 16.12.2010 17:23
разделить цифры у числа Cpluser Общие вопросы C/C++ 8 01.10.2009 14:54
Цифры числа... Mr.Qwerty Паскаль, Turbo Pascal, PascalABC.NET 1 08.09.2009 18:44
Задача на цифры числа Siluet Паскаль, Turbo Pascal, PascalABC.NET 6 04.06.2009 11:57
удаление цифры из числа Elm0 Паскаль, Turbo Pascal, PascalABC.NET 2 15.03.2008 01:51