![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]()
Привет!
Задача: есть массив из unsigned int, в нём хранится БОЛЬШОЕ число в системе счисления 2^32. Необходимо перевести его в 10 систему счисления и вернуть в виде строки. Пусть сейчас сейчас массив насчитывает 16 элементов, число может составлять 512 бит=32*16. Перевести в двоичную с.с не проблема. Если использовать стандартный алгоритм типа 2^0+2^1+2^2 + .. то при переводе в десятичную довольно быстро возникает переполнение. Как можно решить задачу? P.s сторонние библиотеки не интересуют |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Написать алгоритм деления.
|
![]() |
![]() |
![]() |
#3 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Как звучит оригинал задания? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]() Цитата:
История такая: мне понадобилась длинная арифметика в с++. Длинное число представляется в виде массива. Но мне необходимо иметь доступ к элементам массива. Понятно, что можно взять готовую библиотеку. Я посмотрел в исходники GMP. Из коробки доступа к элементам я не имею. Можно поизвращаться, но не факт, что потом в ходе вычислений приложение будет работать корректно. Поэтому было принято решение о создании собственного велосипеда. Почему 2^32? Это было навеяно топиком Более того, в GMP скорее всего тоже в 2^32. |
|
![]() |
![]() |
![]() |
#5 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Тогда пиши класс, который будет работать с такими числами.
Только для отладки сделай основание системы счисления свойством-переменной и отлаживай методы на читабельных основаниях (2...16). Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#6 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Хотя я, хоть убей, не понимаю, зачем такую вещь использовать на практике.
Ведь, один хрен, все операции будут идти в двоичном коде. Не проще юзать строковую длинную арифметику? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]() Цитата:
Но при этом как искать числа вида (2^32)^8, а также саму сумму? На ум приходит использовать строки. Хранить в строковом массиве предвычисленные значения (2^32)^1, (2^32)^2 ... а потом поразрядно сделать сложение строк для получения итогового результата. Мне необходимо быстро вычленять из произвольного чиста куски определенного размера, несколько байт. Если хранить в строках в 10 сс, то тогда как вычленять их них скажем последние 4 байта, последние 8 байт числа? |
|
![]() |
![]() |
![]() |
#8 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Кстати, и строки не нужны, просто юзай длинный динамический массив байт. И ещё: оч числах каких порядков речь идёть? Всё, я домой пошёл. Минут через 20 вернусь. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 15.02.2016 в 17:16. |
|
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]() Цитата:
Вместо массива возьму наверное, vector. |
|
![]() |
![]() |
![]() |
#10 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не работает преобразование кода из одной системы счисления в ID в другой системе счисления | Ultran | PHP | 1 | 09.11.2013 21:15 |
системы счисления | kat308 | Помощь студентам | 8 | 21.02.2013 09:48 |
Системы счисления | counter | Свободное общение | 9 | 12.10.2011 18:15 |
Системы счисления c++ | Kholmansky | Помощь студентам | 7 | 11.09.2011 06:10 |