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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу для вычисления ряда http://www.cyberforum.ru/cpp-beginners/thread1147847.html
Не очень понимаю как вычислять подобные ряды. Подскажите пожалуйста может есть какой то общий алгоритм?
C++ Применить формулу к каждому элементу матрицы Даны 3 целых числа,получить b матрицу элементы которого равны b=a(i)-3*a(j); #include <iostream> using namespace std; void main() { int a,b,i,j;//тут вместо трех чисел использовал массив;... http://www.cyberforum.ru/cpp-beginners/thread1147813.html
C++ Дано целое число n. Найти количество и сумму цифр
Дано целое число n. (1<n<=10^9). Найти кол-во и сумму цифр.
C++ Ошибка при запуске dll на Win Xp X64
Уважаемые форумчане подскажите пожалуйста.Скомпилировал длл в вижуал студио 2012 на Win8 работает без проблем,стоит задача запустить её на Win Xp X64...При запуске выбивет вот такую ошибку...
C++ Разборка с class Person http://www.cyberforum.ru/cpp-beginners/thread1147749.html
#include <iostream> using namespace std; class person { int age; string name; void print()
C++ Изменение порядка строк Помогите составить программу для изменения порядка строк в C++ для реализации в Linux int filikx (char*sF1, char*sF2) { FILE *F1, *F2; int i; F1=fopen (sF1,"r"); if (F1==NULL) return 1;... подробнее

Показать сообщение отдельно
Noob77
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 23

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

14.04.2014, 11:42. Просмотров 1697. Ответов 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
А в других случаях работает..непойму где ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru