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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Noob77
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 23
#1

Умножение двух длинных чисел - C++

14.04.2014, 11:42. Просмотров 1602. Ответов 2
Метки нет (Все метки)

Приветствую, помогите исправить процедуру умножения двух длинных чисел:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void CALL_TYPE  Multiply(unsigned char *u,int N, unsigned char *v,int M,unsigned char* W)
{ // U и V умножаемые числа
    char k = 0;
    long b = 256,temp_word;
    for( int j=M-1;j>=0;j--)
        if(!(v[j]==0))
        {
            k=0;// i= N-1;
            for(int i=N-1; i>=0;i--)
            {
                temp_word=W[i+j+1]+u[i]*v[j]+k;
                W[i+j+1]=temp_word % b; // берем младший байт слова
                k = temp_word/b;// получаем старший байт
                
            }
            W[j]=k;
        }
}
Работает но не всегда, например FFFFFF * FF = EEEFEFF01
А в других случаях работает..непойму где ошибка?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 11:42     Умножение двух длинных чисел
Посмотрите здесь:

Длинная арифметика: умножение двух длинных чисел - C++
Всем привет! Снова к Вам за помощью. Алгоритм умножения двух длинных чисел: void...

Длинная арифметика. Умножение двух длинных чисел. - C++
Есть 2 числа, храняющиеся в int векторах, нужна функция, которая возвращает их произведение также в виде вектора. Либо простой и понятно...

Умножение длинных чисел - C++
Найти произведение двух длинных чисел(целые числа, десятичная запись которых может содержать до 255 цифр). Нужно решить при помощи функций,...

Умножение длинных чисел - C++
Доброго времени суток дорогие брограммисты. Сейчас занимаюсь с длинной арифметикой по книге, автор которой к сожалению предоставил...

Умножение длинных чисел - C++
не работает процедура умножения длинных чисел. переводил с паскаля по книге Окулова "Программирование в алгоритмах". вроде все верно...

Быстрое умножение длинных чисел. - C++
В общем вопрос стоит так: где можно найти красивый код на агоритм Карацубы. В часности -...

Умножение длинных чисел с фиксированной запятой - C++
#include "StdAfx.h" #include "conio.h" #include <iostream> #include <vector> #include <iomanip> #include <string> #include...

Умножение/деление длинных целых чисел из строк - C++
у кого есть код 'умножение и деление целых чисел из строк'? заранее спасибо Добавлено через 32 минуты или библиотека и функции

Умножение длинных целых 11-ричных чисел в виде строк - C++
Доброго времени суток. Если кому приходилось сталкиваться с умножением двух длинных целых чисел (неважно какая система счисления),...

Сложение двух длинных чисел. - C++
всем привет. как вы считаете, каким способом лучше сделать? или абсолютно всеравно?) #include <iostream> #include <string> ...

Сложение/деление двух длинных чисел (длиной 1024 бита) - C++
Всем привет! Есть две вот такие задачи: 1. используя вставку кода в программу на С++, составить программу для сложения 2-х длинных...

Умножение двух больших чисел - C++
дано два 40 значных числа,нужно перемножить их http://e-maxx.ru/algo/big_integer от сюда и других тем с данного форума код не подходит....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2564 / 1786 / 253
Регистрация: 08.06.2007
Сообщений: 6,915
Записей в блоге: 4
14.04.2014, 14:01     Умножение двух длинных чисел #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Почему смешиваете знаковые и беззнаковые переменные? Поставьте unsigned char, unsigned long
Сам алгоритм неправильный. Может получиться, что k>256. Нужно вводить еще один цикл. Перенос в одном разряде может вызвать перенос в более старшем разряде и т. д. до самого старшего.
Noob77
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 23
15.04.2014, 10:19  [ТС]     Умножение двух длинных чисел #3
Точно) Добавил unsigned и все заработало!)
Yandex
Объявления
15.04.2014, 10:19     Умножение двух длинных чисел
Ответ Создать тему
Опции темы

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