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

Реализация 128-битного числа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
mafiozu
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 7
08.11.2012, 18:15     Реализация 128-битного числа #1
Здравствуйте.
В институте дали задание: реализовать стек типа "128-битного" числа.
если использовать long long double то максимум 10 байт (80 бит) выжимаю.
Посоветовали использовать структуру
struct n128
{ double a;
double b;
}

Посоветуйте пожалуйста способы ввода и вывода 128-битного числа.
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.11.2012, 18:21     Реализация 128-битного числа #2
их надо писать самому. это часть вашего задания
Ptomaine
 Аватар для Ptomaine
13 / 13 / 0
Регистрация: 22.10.2011
Сообщений: 35
08.11.2012, 18:39     Реализация 128-битного числа #3
Тип 'long long' имеет размер 64 bit при любой разрядности (32/64).
Поэтому можно так:
C++
1
struct n128 { long long a, b; };
Только небольшое уточнение: стандартно, тип long long, поддерживается в С++ только в GCC (MinGW) и начиная с MS VC++ 2010. До этого, у MSVC++ был свой тип, __int64 по моему.
mafiozu
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 7
08.11.2012, 19:11  [ТС]     Реализация 128-битного числа #4
я правильно понимаю, что, на примере моей структуры, одна из переменных будет хранить первые 8 бит, другая остальные 8, то есть старшую и младшую часть? Если так, то у меня вопрос, какими примерами ввода чисел пользоваться, чтобы проверить правильность моих функций ввода и вывода?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.11.2012, 19:24     Реализация 128-битного числа #5
Цитата Сообщение от mafiozu Посмотреть сообщение
первые 8 бит, другая остальные 8
8 байт

Введите длинное число)
Или покажите ваш текущий код
Ptomaine
 Аватар для Ptomaine
13 / 13 / 0
Регистрация: 22.10.2011
Сообщений: 35
08.11.2012, 19:29     Реализация 128-битного числа #6
нет,
одна переменная будет 64 бита (8 байт, а не бит)
ну и вторая точно такая же.
в сумме они дают 128 бит (16 байт)

для манипуляций с данными нужно переписывать операторы этой структуры, и кода, для правильных и точных операций с такими числами, будет многовато.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 19:51     Реализация 128-битного числа
Еще ссылки по теме:

Реализация разбиения числа с Динам. Прогр C++
C++ Не компилируется 64-битная DLL из 32-битного проекта
Вычисление факториала 20-битного числа C++

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

Или воспользуйтесь поиском по форуму:
mafiozu
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 7
08.11.2012, 19:51  [ТС]     Реализация 128-битного числа #7
Цитата Сообщение от I.M. Посмотреть сообщение
8 байт

Введите длинное число)
Или покажите ваш текущий код
Да-да, 8 байт, голова просто кипит уже)
через часок скину

Цитата Сообщение от Ptomaine Посмотреть сообщение
нет,
одна переменная будет 64 бита (8 байт, а не бит)
ну и вторая точно такая же.
в сумме они дают 128 бит (16 байт)

для манипуляций с данными нужно переписывать операторы этой структуры, и кода, для правильных и точных операций с такими числами, будет многовато.
не совсем утешительное сообщение)

Добавлено через 6 минут
Цитата Сообщение от Ptomaine Посмотреть сообщение
нет,
одна переменная будет 64 бита (8 байт, а не бит)
ну и вторая точно такая же.
в сумме они дают 128 бит (16 байт)

для манипуляций с данными нужно переписывать операторы этой структуры, и кода, для правильных и точных операций с такими числами, будет многовато.
ну у меня только три метода класса стека:
1. Добавить
2. Исключить
3. Показать
Yandex
Объявления
08.11.2012, 19:51     Реализация 128-битного числа
Ответ Создать тему
Опции темы

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