• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

Множење на бинарни броеви во C++

Статус
Затворена за нови мислења.
  • Ја почнал/а темата
  • #1

pankipan4e

Intern
30 април 2007
12
0
Мала помош !!!

Вака ми треба да направам код во C++ за множење на бинарни броеви, ама малку тешко ми оди. Ај ако има некој такво нешто нека постира тука, ако не ќе се снајдам некако. Иначе треба кориснички да се внесат два бинарни броја и програмата да ги помножи тие два броја и да го даде резултатот. Ако некој успее да помогне, ќе ми заврши голема работа. Фала однапед
 

StenmarC

Intern
16 април 2007
716
13
stenmarc.blog.com.mk
Може со функција која ги претвара броевите во децимални? Ги претварам, ги множам обично и резултатот пак го претварам бинарен?
Или мора да биде со оној директен метод за множење на бинарни броеви?
 

vasildb

Intern
17 април 2007
209
6
Да, најдобро е како што вели StenmarC. Нема смисла да се множат како што ги множиме ние во тетратка. Мислам дека така само може да се усложни постапката.
 

StenmarC

Intern
16 април 2007
716
13
stenmarc.blog.com.mk
Да, најдобро е како што вели StenmarC. Нема смисла да се множат како што ги множиме ние во тетратка. Мислам дека така само може да се усложни постапката.
Да, ама може така му е поставена задачата т.е. да мора да ги множи според тој метод. Ај ако го најдам тој мојот C++ компајлер ќе ја пишам задачата тука.
 
  • Ја почнал/а темата
  • #5

pankipan4e

Intern
30 април 2007
12
0
Може со функција која ги претвара броевите во децимални? Ги претварам, ги множам обично и резултатот пак го претварам бинарен?
Или мора да биде со оној директен метод за множење на бинарни броеви?
Еве вака да пообјаснам со мал алгоритам: Треба да се започне со акумулиран производ еднаков на нула, потоа, да се испитуваат поединечните битови на множителот, почнувајчи од најмалку значајниот бит, ако испитуваниот бит на множителот е 1, тогаш да се додаде множеникот на акумулираниот производ, Во спротивно, да не се преземе акција. Да се помести множеникот за еден бит во лево и потоа пак да се испитуваат битовите се до последниот. Се надевам дека е појасно малку. Иначе ова треба да ми е готово најкасно до 10-ти Мај. Така да фала на нова отворен тема и не се надевав дека ќе отворам дискусија на оваа тематика.
 

delix

Intern
7 април 2007
702
23
samo ke gi mnozis kako na raka, od desno na levo i ke gi pomestuvas za edna pozicija.
Najednostavno, da zememe so dekadni
13 * 12
--------
__26
+13(0)
-------
_156
ili 26+130
bi mozel da go iskoristis ova samo vo binarni. Prvo mnozi gi so po edna cifra, a za sekoja naredna ke zgolemuvas za 10^n, kade n ti enekoj brojac
 
  • Ја почнал/а темата
  • #7

pankipan4e

Intern
30 април 2007
12
0
паметна идеа delix арно ама за 1+1 ќе ми даде 2. како да го средам тоа.
 

Stru4nak

Gaining Experience
16 април 2007
373
120
Stru4nak's setup  
Processor & Cooler
INTEL Core i7 7700K
Motherboard
Asus Strix Z270F
Storage
Crucial M4 128GB
PSU
CM 620W
RAM
DDR4 3200MHz G.Skill TridentZ 16GB
Video card
R9 290 Tri-X 4GB
Case
Cooler Master Enforcer
Monitor
Asus LED 24"
OS
Windows 10 Enterprice 64bit
Еве програма за претворање од бин во дец. Се надевам дека ќе ви помогни. Мислам дека можи да се искористи нешто од програмава.
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
int dec=0, flag=0.0;
int bin, bit;
double exp=0.0;
printf("Enter a binary number : ");
scanf("%d", &bin);


while(bin) {
bit=bin%10;


if(bit!=0 && bit!=1) {
flag=1;
}
bin=bin/10;
dec=dec+bit*pow(2, exp);
exp++;
}
if(flag) {printf("\n+++ Not a binary number !!!\n");}
else {printf("\n+++ Number in decimal : %d\n", dec);}
system("Pause");
return 0;
}
 

Stru4nak

Gaining Experience
16 април 2007
373
120
Stru4nak's setup  
Processor & Cooler
INTEL Core i7 7700K
Motherboard
Asus Strix Z270F
Storage
Crucial M4 128GB
PSU
CM 620W
RAM
DDR4 3200MHz G.Skill TridentZ 16GB
Video card
R9 290 Tri-X 4GB
Case
Cooler Master Enforcer
Monitor
Asus LED 24"
OS
Windows 10 Enterprice 64bit
Програма за претворајне од дец во бин.
Ако не ти е дадено во задачата диркетно множење можиш да ја искористиш оваа. Добиениот резултата т.е дец број го конвертираш во бинарен.
/* Programa za konvertirajne dec >> bin*/

#include <stdio.h>
#include <string.h>

void main()
{
int a,b=0,i;
char str[10],str1[10];

printf("Enter a decimal number\n");
scanf("%d",&a);

while(a!=0)
{
str[b++]=a%2;
a=a/2;
}
str[b+1]='\0';
a=0;

for(i=b-1;i>=0;i--)
{
str1[a++]=str;
}


str1[a+1]='\0';

printf("The binary equivalent is\n");
for(i=0;i<b;i++)
{
printf("%d",str1);
}

printf("\n\n");
system("Pause");
}
 
  • Ја почнал/а темата
  • #10

pankipan4e

Intern
30 април 2007
12
0
еј баш ти фала

Леле Stru4nak ѕвер си, не си свесен колку си ми помогнал, браво. Сега само што треба да направам е да се внесуваат неколку бинарни, па потоа да се направат во декадни, па да се помножат, и резултатот пак во бинарен. Ќе се потрудам за тоа. За ова фала ти многу, само уште да не ми биде вратен проектов назад LOL .
 
  • Ја почнал/а темата
  • #11

pankipan4e

Intern
30 април 2007
12
0
Еве едно решение на проблемот. Јас ги искомбинирав програмите од Stru4nak и еве што испадна !!! Фала ти пак Stru4nak:

#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string.h>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
int dec1=0,dec2=0, flag=0.0;
int bin1, bin2, bit1, bit2;
double exp=0.0;
cout<<"Vnesete dva binarni broja za da se pomnozat!!!"<<endl;
printf("Vnesete go prviot binaren broj : ");
scanf("%d", &bin1);
printf("Vnesete go vtoriot binaren broj : ");
scanf("%d", &bin2);

while(bin1) {
bit1=bin1%10;

if(bit1!=0 && bit1!=1) {
flag=1;
}
bin1=bin1/10;
dec1=dec1+bit1*pow(2, exp);
exp++;
}

while(bin2) {
bit2=bin2%10;

if(bit2!=0 && bit2!=1) {
flag=1;
}
bin2=bin2/10;
dec2=dec2+bit2*pow(2, exp);
exp++;
}

if(flag) {printf("\n+++ Not a binary number !!!\n");}

/* Programa za konvertirajne dec >> bin*/

int a,b=0,i;
char str[100],str1[100];

a=dec1*dec2;
while(a!=0)
{
str[b++]=a%2;
a=a/2;
}
str[b+1]='\0';
a=0;

for(i=b-1;i>=0;i--)
{
str1[a++]=str;
}


str1[a+1]='\0';

printf("Rezultatot e:\n");
for(i=0;i<b;i++)
{
printf("%d",str1);
}

printf("\n\n");
system("Pause");
return 0;

}
 

Stru4nak

Gaining Experience
16 април 2007
373
120
Stru4nak's setup  
Processor & Cooler
INTEL Core i7 7700K
Motherboard
Asus Strix Z270F
Storage
Crucial M4 128GB
PSU
CM 620W
RAM
DDR4 3200MHz G.Skill TridentZ 16GB
Video card
R9 290 Tri-X 4GB
Case
Cooler Master Enforcer
Monitor
Asus LED 24"
OS
Windows 10 Enterprice 64bit
Нема проблем тука сум да помогнам иначе врска немам c++ ама го учам. Инаку јас имам друг проект директно множејне на броеви во сите бројни системи ама е направен во Microsoft Visual c++ ова е уствари дигитрон направен е во Windows okolina.
 
Статус
Затворена за нови мислења.

Нови мислења

Последни Теми

Статистика

Теми
43,499
Мислења
821,926
Членови
28,044
Најнов член
codeo
На врв Дно