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

Сложение 2-х целых двоичных чисел, хранящихся в массивах A и B - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задача непонятная http://www.cyberforum.ru/cpp-beginners/thread632260.html
Объясните, пожалуйста, что нужно сделать, а то формулу не могу вывести, т.е. что нужно делать и с какой последовательностью. Было бы здорово если объяснение с примером )
C++ Библиотека/утилита для извления flv (флэш) контента из html страницы Есть ли подобные вещи для извлечения url на flv контент из html кода страницы? Сразу скажу, что это не популярный видеохостинг типа ютуба. Но при помощи браузера фаерфокса+плагина download helper я... http://www.cyberforum.ru/cpp-beginners/thread632247.html
Какой книгой лучше пользоваться при изучении visual c++ 2008 C++
Решил изучить visual c++ 2008. Какой книгой лучше пользоваться при изучении(полый "0" в с++)?
C++ Программирование пользовательского элемента управления
Я собираюсь сделать грубый графический редактор для моей же игры. Для этого мне надо сделать новый элемент управления в качестве облегченного варианта PictureBox, с одним пикселем. У него будет...
C++ Чтение свойтв (тех данных) файла http://www.cyberforum.ru/cpp-beginners/thread632198.html
Здравствуйте. Подскажите пожалуйста, как считывать все тех данные файлов? (они же свойства файла) Под техданными имею ввиду: размеры картинки, время создания/изменения, разрешение видеофайла,...
C++ пару строк кода с Delphi на C++ Здравствуйте! Есть код на Delphi, его нужно переписать на C++ Вот этот цикл: while length(c)>1 do begin for i:=1 to length(c) do begin val(c,x,code); s:=s+x; end; подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
03.08.2012, 16:40
RaiaNKnight, вот что у меня вышло по твоей проблемме
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
#include <iostream>
using namespace std;
 
//Ïîëó÷Г*ГҐГІ Г¬Г*Г±Г±ГЁГў äâîè÷Г*îãî ïðåäñòГ*âëåГ*ГЁГї Г·ГЁГ±Г«Г* val
int * getBinArray(int val, int &n);
//ÔóГ*êöèÿ âîçâðГ*Г№Г*ГҐГІ Г¬Г*Г±Г±ГЁГў ñóììû äâóõ äâîè÷Г*ûõ ïðåäñòГ*âëåГ*ГЁГ©
int * getBinSum(int * a, int na, int *b, int nb, int &nc);
//ÔóГ*êöèÿ ïðåîáðГ*çóåò Г¬Г*Г±Г±ГЁГў äâîè÷Г*îãî ïðåäñòГ*âëåГ*ГЁГї Гў äåñÿòè÷Г*îå
int getDecValue(int * c, int nc);
//ÔóГ*êöèÿ ГЇГҐГ·Г*ГІГ*ГҐГІ Г*Г* ГЅГЄГ°Г*Г*ГҐ ýëåìåГ*ГІГ» îäГ*îìåðГ*îãî Г¬Г*Г±Г±ГЁГўГ*
void showVec(int * vec, int n);
 
int main()
{
    int a, b;
    cout<<"a = ";cin>>a;
    cout<<"b = ";cin>>b;
    int nA   = 0;
    int nB   = 0;
    int nC   = 0;
    int * binA = getBinArray(a, nA);
    int * binB = getBinArray(b, nB);
    int * binC = getBinSum(binA, nA, binB, nB, nC);
    cout<<"Binary a  : ";showVec(binA, nA);
    cout<<"Binary b  : ";showVec(binB, nB);
    cout<<"Binary c  : ";showVec(binC, nC);
    cout<<"Dec     c : "<<getDecValue(binC, nC)<<endl;
    cout<<"Dec a + b : "<<a + b<<endl;
    delete [] binA;
    delete [] binB;
    delete [] binC;
    return 0;
}
 
int * getBinArray(int val, int &n)
{
    n       = 1;
    int buf = val;
    while(buf /= 2)
        n = n + 1;
    int * arr = new int[n];
    for(int i = 0; i < n; i++)
    {
        arr[n - 1 - i] = val % 2;
        val            = val / 2;
    }
    return arr;
}
 
int * getBinSum(int * a, int na, int *b, int nb, int &nc)
{
    nc = 1 + ((na < nb) ? nb : na);
    int *c = new int[nc + 1];
    int shift = 0;
    for(int i = 0; i < nc; i++)
    {
        c[nc - 1 - i] = shift;
        if(i < na)
            c[nc - 1 - i] += a[na - 1 - i];
        if(i < nb)
            c[nc - 1 - i] += b[nb - 1 - i];
        shift= 0;
        if(1 < c[nc - 1 - i])
        {
            c[nc - 1 - i] = 0;
            shift= 1;
        }
    }
    return c;
}
 
int getDecValue(int * c, int nc)
{
    int val = 0;
    int pwr = 1;
    for(int i = 0; i < nc; i++)
    {
        val += c[nc - 1 - i]*pwr;
        pwr *= 2;
    }
    return val;
}
 
void showVec(int * vec, int n)
{
    for(int i = 0; i < n; i++)
        cout<<vec[i]<<" ";
    cout<<endl;
}
1
Миниатюры
Сложение 2-х целых двоичных чисел, хранящихся в массивах A и B  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.