Hirdetés
Aktív témák
-
t3rm1nat0r
csendes tag
válasz
t3rm1nat0r
#48
üzenetére
De ha már belekezdtem, akkor legyen itt a teljes szorzo.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int pipeline[128][32];
int parameter[256][2][8],szam[256][2];
int adder_tablazat[4*4*2][4];
int main()
{
int c,i,j,k,l,mask;
for(c=0;c<2;c++)//carry
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
int osszeg=i+j+c;
int addr=c*16+i*4+j;
mask=1;
for(k=0;k<3;k++) {adder_tablazat[addr][k]=((osszeg & mask)>>k);mask<<=1;}
}
for(c=0;c<2;c++)//carry
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
int osszeg=i+j+c;
mask=1;
printf("%d + %d + %d =%d ",i,j,c,osszeg);
for(k=0;k<3;k++) printf("%d",adder_tablazat[c*16+i*4+j][2-k]);
printf("\n");
}
for(j=128;j<256;j++)//eleje ures
{
szam[j][0]=rand()%256;//veletlen ertekeket szoroz ossze
szam[j][1]=rand()%256;
mask=1;
for(k=0;k<8;k++) {parameter[j][0][k]=(szam[j][0] & mask)>>k;mask<<=1;}
mask=1;
for(k=0;k<8;k++) {parameter[j][1][k]=(szam[j][1] & mask)>>k;mask<<=1;}
}
int pl=8*8+1;
int plp=128;//elso elem
for(l=0;l<pl*2;l++)//ciklus
{
//if(l==pl-1)//csak a vegen irja ki
{
// for(j=0;j<pl;j++)
j=pl;
{
mask=0x8000;
int bits=0;
for(k=0;k<16;k++)
{
int bit=pipeline[j][15-k];
printf("%d",bit);
if(bit) bits|=mask;
mask>>=1;
}
printf("= %d ",bits);
printf(" cr= %d ",pipeline[j][20]);
int p=(plp-j);
printf("%d * %d = %d ",szam[p][0],szam[p][1],szam[p][0]*szam[p][1]);
}
printf("\n");
}
mask=1;
for(k=0;k<32;k++) pipeline[0][k]=0;//mindig nullaval kezd
int plp2=plp-pl;
plp++;
for(j=pl;j>=0;j--)//csovezetek
{
int j2=j&7;//8 16-bites adder
int bit_offset=j>>3;
int p=plp2;
plp2++;//a kovetkezo fokozatban regebbi van,j visszafele megy
for(k=0;k<16;k+=2)
{
if((k>>1) == j2 )
{
int bita0=pipeline[j][k];
int bita1=pipeline[j][k+1];
int bitb0=0;
int bitb1=0;
int carry=pipeline[j][20];
if(j2==0) carry=0;//adder start
int d=k-bit_offset;
if(d>=0 && d<8) bitb0=parameter[p][1][d];
d++;
if(d>=0 && d<8) bitb1=parameter[p][1][d];
if(parameter[p][0][bit_offset]==0) //0-val szoroz
{
bitb0=0;
bitb1=0;
}
int addra=(bita1<<1)+bita0;
int addrb=(bitb1<<1)+bitb0;
addra=(carry<<4) + (addra<<2) + addrb;
pipeline[j+1][k ]=adder_tablazat[addra][0];
pipeline[j+1][k+1]=adder_tablazat[addra][1];
pipeline[j+1][20 ]=adder_tablazat[addra][2];//carry
}
else
{
pipeline[j+1][k] =pipeline[j][k];
pipeline[j+1][k+1]=pipeline[j][k+1];
}
}
}
}
return 0;
}
Aktív témák
- iPhone 12 Pro 128GB gyári független új akku fizikai dual SIM!!!
- Samyang AF 85mm f/1.4 FE II objektív Sony E
- Eladó egy igazi ritkaság Dell UltraSharp 32" 8K Monitor - UP3218K
- eladó Dell U4320Q Monitor 42.5 " 3840 x 2160 (4K UHD)
- Új Bontatlan Lenovo ThinkPad P16v Gen2 Mobil Munkaállomás -50% Ultra 7 165H 32/1TB RTX 2000 8GB 30Hó
- Új Asus 16 ROG WUXGA IPS 165Hz G-Sync i9-14900HX 32GB 1TB Nvidia RTX 4070 8GB 140W Win11 Garancia
- LG 65B3 -65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 15 Pro Max 256GB White Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3661, 100% Akkum
- Bomba ár! Dell Latitude 5410 - i5-10GEN I 8GB I 256SSD I HDMI I 14" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest


