Zitat von
kundesbanzler
Also das, was du da jetzt gerechnet hast, verstehe ich überhaupt nicht, sry
Ich dachte zuerst, du brauchst dieses Array, weil du mit einem Mikroprozessor multiplizieren willst; ich wollte einfach nur zeigen, wie du die Binäre Multiplikation implementierst.
Wenn ich diese 16 Bit auf 8 Bit kürze, sind es die 8 höherwertigen, die signifikant sind, nicht die 8 niederwertigen.
2*128 = 1... Nagut
Und das, was ich brauche, ist einfach nur eine Binärdatei mit 65k*8 0en und 1en, die exakt (auf den Bit genau) 512kBit groß sein muss.
Willst du jedes Bit einzeln als Byte gespeichert haben? Oder wie oder was?
Eine 512kBit große Datei mit dem gewünschten Ergebnis bekommst du so:
Code:
#include <stdio.h>
int main()
{
FILE* f;
char mul[256][256];
int a,b,c;
char d;
f = fopen("multable","wb");
for (a=0;a<256;a++) for (b=0;b<256;b++) mul[a][b] = (a*b)/256; // so? Dann wäre 1*1 = 0, da das höherwertige Byte 0 ist.
// Ansonsten mul[a][b] = a*b;
fwrite(mul,sizeof(mul),1,f);
fclose(f);
}
Falls du möchtest, dass in der Datei jedes Bit einzeln ein Byte einnimmt, also in der Art
Code:
00 01 00 01 01 01 00
, dann ersetze den fwrite durch
Code:
for(a=0;a<256;a++) for(b=0;b<256;b++) for(c=7;c>=0;c--) {d = (mul[a][b]>>c)&1;fwrite(d,1,1,f);}
Lesezeichen