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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Dev-C++ Программа с массивами http://www.cyberforum.ru/cpp-beginners/thread999070.html
По неработающему образцу (данному учителем) написала программу. Как следствие: прога тоже нерабочая вышла. Образец (Пример ввода 5 целочисленных значений): #include <conio.h> #include <iostream.h> void main() { clrscr(); const int n=4; int a={0,}; for (int i=0;i<n;i++);
C++ Пять в ряд Доброго времени суток, господа. Никому не встречалась случаем игра такая-пять в ряд. Суть что и в крестиках ноликах, только поле 20х20 и пять в ряд а не не три. Помогите бедному студенту...:cry: http://www.cyberforum.ru/cpp-beginners/thread999065.html
C++ if в switch
Всем доброе время суток!!! Сразу прошу прощения за возможное существование похожей темы, со схожей сутью вопроса. google мне не в помощь,имхо не нашел схожей проблемы ( а только объяснения , что такое switch и с чем его едет ). Учу язык по Шилдт Г. С++ Базовый курс, 3-е издание,2010. В конце 4той главы есть исходник проги , звёздное число. С использованием if ветвления и цикла do while,...
Массив объектов пользовательского типа в vector C++
Доброго времени суток. Кто может подсказать что храниться в vector< Employer* > employerArray ( 4 ); при его инициализации?
C++ как расписать http://www.cyberforum.ru/cpp-beginners/thread999045.html
{log}_{u}2x-{u}^{3}
C++ Задача Доброго времени суток. Помогите решить задачу по программированию (С++). Что то не какие идеи не приходят в голову... Тут наверное нужно использовать какой то умный очень алгоритм, что то типа жадного... в общим я не знаю. Вот сам задача: Имеем таблицу размером N * M , в каждой ячейке которой записана цифра 0 или 1 . На каждом шаге вы можете выбрать одну ячейку и поменять значения во всех... подробнее

Показать сообщение отдельно
Андриэль
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 13

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

05.11.2013, 21:52. Просмотров 810. Ответов 2
Метки (Все метки)

Всем доброго времени суток!

Мучаю эту программу уже который день, но правильно она складывать числа в двоичной системе счисления отказывается, хотя сдвиг делает правильно. Помогите разобраться. Заранее спасибо

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
#include<math.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<stdlib.h>
#include<stdio.h>
#include<dos.h>
int i=0,n=0,k=0,k1=0,k2=0,j=0,r=0,u=0,rez[10][10],a[10];
void perevod (int sl)
{int n=0;
if (j==1) k=k1;
k1=0;
do
k1++;
while (pow(2,k1)<=sl);
cout<<"\n"<<sl<<" => ";
for (i=k1;i>0;i--)
{n=sl%2; rez[j][i]=n;
if (n==0) sl=sl/2;
if (n==1) sl=(sl-1)/2;}
for(i=1;i<k1+1;i++)
cout<<rez[j][i];
j++;
}
void proiz (int sl,int sl1)
{int l=0,p=0,j=2,pr=sl*sl1,t=0;
for (l=2;l<=10;l++)
for (i=0;i<=10;i++)
rez[l][i]=0;
do
k2++;
while (pow(2,k2)<=pr);
r=k2;
u=k1-1;
for (i=1;i<k1+1;i++)
{if (rez[1][i]==1) for (l=k;l>=1;l--)
           rez[j][l+u]=rez[0][l];
 u--;
 j++;}
t=j;n=2+k1;
for (l=2;l<n+1;l++)
{cout<<"\n\n";
for (i=0;i<=5;i++)
cout<<"  "<<rez[l][i];}
for (i=0;i<=10;i++)
a[i]=0;
p=0;
for (j=3;j<n+1;j++)
for (i=k2;i>=1;i--)
 if ((rez[j-1][i]==0)&&(rez[j][i]==0)) {if (p==0) {rez[j][i]=0;p=0;}
                     if (p==1) {rez[j][i]=1;p=0;}}
 else
  {if (((rez[j-1][i]==0)&&(rez[j][i]==1))||((rez[j-1][i]==1)&&(rez[j][i]==0))) {if (p==0) {rez[j][i]=1;p=0;}
                                           if (p==1) {rez[j][i]=0;p=1;}}
 
   else {
      if ((rez[j-1][i]==1)&&(rez[j][i]==1)) {if (p==0) {rez[j][i]=0;p=1;}
                         if (p==1) {rez[j][i]=1;p=1;}}
}/*cout<<"\n\n";
for (t=2;t<=5;t++)
{cout<<"\n";
for (l=0;l<=5;l++)
cout<<"  "<<rez[t][l];}
getch();*/
 }}
void main()
{clrscr();
int a,b;
cout<<"Vvedite 1 mnojitel = "; cin>>a; perevod(a);
cout<<"\n\nVvedite 2 mnojitel = "; cin>>b; perevod (b);
proiz (a,b);
cout<<"\n\n";
for (i=1;i<=r;i++)
cout<<rez[n][i];
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru