Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
mafiozu
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 7
#1

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

08.11.2012, 18:15. Просмотров 2321. Ответов 6
Метки нет (Все метки)

Здравствуйте.
В институте дали задание: реализовать стек типа "128-битного" числа.
если использовать long long double то максимум 10 байт (80 бит) выжимаю.
Посоветовали использовать структуру
struct n128
{ double a;
double b;
}

Посоветуйте пожалуйста способы ввода и вывода 128-битного числа.
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация 128-битного числа (C++):

Эмуляция 128-битного типа - C++
В GCC есть возможность работы со 128-битным типом __int128_t. Как включить поддердку такого типа в Visual Studio?

специфика создание 32 - х битного и 64 - х битного приложение - C++
Господа допустим есть программа 32-х битная как из неё сделать 64-х битную . Интересует вообще как это реализуется и на сколько сложна...

Распаковка 32 битного числа - C++
Реализовали такой алгоритм запаковки со всякими сдвигами. В файл пишется блоками по 17 байт, в которые зашито 8 32-битных чисел. int...

Вычисление факториала 20-битного числа - C++
Здравствуйте. Дано 20-битное беззнаковое целое число. Нужно узнать количество знаков и количество нулей его факториала в N системе...

Запись в char числа <-128 - C++
Всем привет! Подскажите пожалуйста, как в переменную типа char записать число -129, причем чтобы потом его можно было бы прочитать без...

Сравнение двух 128-и бытных числа на разных платформах оптимальным способом - C++
Hello World! :) Ребят, есть два 128-и битных числа, допустим: char* a; //по указателю первые 16 байт - это целое знаковое число типа...

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

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

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

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

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

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

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

для манипуляций с данными нужно переписывать операторы этой структуры, и кода, для правильных и точных операций с такими числами, будет многовато.
ну у меня только три метода класса стека:
1. Добавить
2. Исключить
3. Показать
0
08.11.2012, 19:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 19:51
Привет! Вот еще темы с ответами:

Сдвиг 128-битного числа - C++
Есть строчка размером 16 байт.Как сдвинуть бинарное представление этой строки на 25 разрядов влево например. Автор забыл упомянуть что...

Не компилируется 64-битная DLL из 32-битного проекта - C++
Добрый день! У меня есть проект MS VS2010 Prof+WinDDK7600, 32-битная DLL принтпроцессора. Во время печати спулер системы ее...

Реализация разбиения числа с Динам. Прогр - C++
Доброго времени суток. Нужна помощь: как с помощью динамического программирования реализовать решение такой вот задачи: &quot;найти...

Реализация программы с помощью функции f(a) – сумма цифр целого числа a - C++
Пусть f(a) – сумма цифр целого числа a. Для заданного x вычислить: f( f(x+2) + f(2x) ) f(x x). Нужно с помощью процедур/функций...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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