Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Длинная арифметика: как реализовать код функций и операторов

31.03.2011, 06:16. Показов 1708. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добавлено через 17 минут
Задача: сделать типы длинных чисел, например, знаковое 256-ти битное целое и 256-ти битное вещественное с 224-х битной мантиссой и 32-х битным порядком? Надо поддерживать всю арифметику, прямую и обратную тригонометрию, логарифм, экспоненту, преобразования в стандартные числовые типы и из стандартных типов, перекрёстные преобразования между длинными типами. И в вещественном надо предусмотреть коды для бесконечности, минус бесконечности и неопределённости. Типы будут классами, а для них надо сделать нужные функции и операторы. Объявить классы, функции и операторы и отвести память для меня не проблема. Это делается на языке c++, вопрос не в этом. А как реализовать код функций и операторов?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
class T256integer
{
 protected:
  unsigned char data[32]; // unsigned char=BYTE
 public:
  T256integer operator + (T256integer y);
  T256integer operator - (T256integer y);
  T256integer operator * (T256integer y);
  T256integer operator / (T256integer y);
  void operator += (T256integer y);
  void operator -= (T256integer y);
  void operator *= (T256integer y);
  void operator /= (T256integer y);
}
T256integer
T256integer::T256integer operator + (T256integer y)
{
 T256integer result;
 // this->data - поле data левого слагаемого
 // y.data - поле data правого слагаемого
 // result.data - поле data суммы
 asm
 {
  // Что писать здесь?
 }
 return result;
}
T256integer
T256integer::T256integer operator - (T256integer y)
{
 T256integer result;
 // this->data - поле data уменьшаемого
 // y.data - поле data вычитаемого
 // result.data - поле data разности
 asm
 {
  // Что писать здесь?
 }
 return result;
}
T256integer
T256integer::T256integer operator * (T256integer y)
{
 T256integer result;
 // this->data - поле data левого множителя
 // y.data - поле data правого множителя
 // result.data - поле data произведения
 asm
 {
  // Что писать здесь?
 }
 return result;
}
T256integer
T256integer::T256integer operator / (T256integer y)
{
 T256integer result;
 // this->data - поле data делимого
 // y.data - поле data делителя
 // result.data - поле data частного
 asm
 {
  // Что писать здесь?
 }
 return result;
}
 
void
T256integer::T256integer operator += (T256integer y)
{
 T256integer result;
 // this->data - поле data левого операнда, через левый опреранд и получается левое слагаемое, и возвращается сумма
 // y.data - поле data правого слагаемого
 asm
 {
  // Что писать здесь?
 }
 return result;
}
void
T256integer::T256integer operator -= (T256integer y)
{
  // this->data - поле data левого операнда, через левый опреранд и получается уменьшаемое, и возвращается разность
 // y.data - поле data вычистаемого
 asm
 {
  // Что писать здесь?
 }
 return result;
}
void
T256integer::T256integer operator *= (T256integer y)
{
 // this->data - поле data левого операнда, через левый опреранд и получается левый множитель, и возвращается произведение
 // y.data - поле data правого множителя
 asm
 {
  // Что писать здесь?
 }
 return result;
}
void
T256integer::T256integer operator /= (T256integer y)
{
 // this->data - поле data левого операнда, через левый опреранд и получается делимое, и возвращается частное
 // y.data - поле data делителя
 asm
 {
  // Что писать здесь?
 }
 return result;
}
Добавлено через 18 часов 54 минуты
Что, ни кто не поможет мне с этим сисемблером?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2011, 06:16
Ответы с готовыми решениями:

Assembler длинная арифметика
Пишу прогу для лабы(студент 1 курс). Задача: Пользователь вводит два знаковых числа X и Y. Вычислить частное и остаток от их...

Длинная арифметика: проверить, делится ли число на 101
Здравствуйте) помогите пожалуйста:(дано очень большое число, состоящее из более 2000 цифр . Проверить делится ли оно на 101. Думаю, стоит...

Длинная арифметика. Вычитание и деление. Реализация в виде функций в Си
Доброго времени суток, киберфорум. Требуется помощь в написании итак уже заезженной темы: "Длинная арифметика" ТЗ: Требуется...

1
 Аватар для SeryZone
56 / 28 / 18
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
12.11.2012, 16:38
Да, такое в интернете не валяется... Я сам на Паскале не знаю, как писать со знаком арифметику, вот исследую. Надо пробовать тестировать всё ВРУЧНУЮ, а потом проги писать, а иначе ничего не выйдет!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2012, 16:38
Помогаю со студенческими работами здесь

Длинная арифметика
Как сделать такой сисемблер? class TKilofloat; class TKiloint { private: char Data ; // Массив байт public: void...

Длинная арифметика
Как реализовать целочиселнное деление длинного числа на длинное и на обычное? Как получить остатки? Остальную длинную арифметику знаю.

Длинная арифметика (ASM-вставки в C++)
привет всем, нужна помощь в освоении асм вставок, нужно написать длинную арифметику сложения, вычитание, умножение деление, т.е. это 4...

Длинная арифметика, суммирование элементов массива
Задан массив A из элементов типа byte (целое 8-ми разрядное без знака). Составить программу суммирования элементов массива. Если сумма не...

Длинная арифметика - умножить длинное число на короткое
Народ. помогите! Нужно реализовать на Ассемблере длинную арифметику. Сложение и вычитание уже сделал, а с умножением и делением нет. Как...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru