Quote:
Originally posted by neji@Dec 10 2006, 22:28
In C kann man dieses tun:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
In Pascal kann man dieses NICHT tun:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
|
Die Möglichkeit etwas tun zu können, sollte einen nicht unbedingt animieren es zu tun (wir sind ja schließlich keine Kinder, die mit ihren Händchen an die heisse Herdplatte fassen, obwohl Mutter eine deutliche Warnung ausgesprochen hat) :-)
Wenn ich absolut - und unbegründet - komplexen Code sehe, halte ich den Programmierer erstmal für jemanden, der die meiste Zeit damit verbracht hat, den Code unleserlich zu gestalten. Vielleicht damit ihn dritte als elitär bezeichnen?
Mein Code (in C++) wird eigentlich meist als gut lesbar und "sauber" bezeichnet.
(über die verwendete ungarische Notation kann man sich schlagen)
Bei C# brauchst du nur einen Obfuscator und einen Decompiler. Danach kannst du deinen schönen Code durch so etwas direkt ersetzen:
Code:
private void a(byte[] A_0, int A_1)
{
uint[] arr1;
uint[] arr = new uint[80];
this.d += 64;
for (int i = 0; i < 16; i++)
{
arr[i] = (((A_0[A_1 + (4 * i)] << 24) | (A_0[(A_1 + (4 * i)) + 1] << 16)) | (A_0[(A_1 + (4 * i)) + 2] << 8)) | A_0[(A_1 + (4 * i)) + 3];
}
for (i = 16; i < 80; i++)
{
arr[i] = ((((arr[i - 3] ^ arr[i - 8]) ^ arr[i - 14]) ^ arr[i - 16]) << 1) | ((((arr[i - 3] ^ arr[i - 8]) ^ arr[i - 14]) ^ arr[i - 16]) >> 31);
}
uint ui = this.c[null];
uint ui1 = this.c[1];
uint ui2 = this.c[2];
uint ui3 = this.c[3];
uint ui4 = this.c[4];
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui2 ^ ui3) & ui1) ^ ui3)) + 1518500249) + arr[null];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui1 ^ ui2) & ui) ^ ui2)) + 1518500249) + arr[1];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui ^ ui1) & ui4) ^ ui1)) + 1518500249) + arr[2];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui4 ^ ui) & ui3) ^ ui)) + 1518500249) + arr[3];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui3 ^ ui4) & ui2) ^ ui4)) + 1518500249) + arr[4];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui2 ^ ui3) & ui1) ^ ui3)) + 1518500249) + arr[5];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui1 ^ ui2) & ui) ^ ui2)) + 1518500249) + arr[6];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui ^ ui1) & ui4) ^ ui1)) + 1518500249) + arr[7];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui4 ^ ui) & ui3) ^ ui)) + 1518500249) + arr[8];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui3 ^ ui4) & ui2) ^ ui4)) + 1518500249) + arr[9];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui2 ^ ui3) & ui1) ^ ui3)) + 1518500249) + arr[10];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui1 ^ ui2) & ui) ^ ui2)) + 1518500249) + arr[11];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui ^ ui1) & ui4) ^ ui1)) + 1518500249) + arr[12];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui4 ^ ui) & ui3) ^ ui)) + 1518500249) + arr[13];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui3 ^ ui4) & ui2) ^ ui4)) + 1518500249) + arr[14];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui2 ^ ui3) & ui1) ^ ui3)) + 1518500249) + arr[15];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui1 ^ ui2) & ui) ^ ui2)) + 1518500249) + arr[16];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui ^ ui1) & ui4) ^ ui1)) + 1518500249) + arr[17];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui4 ^ ui) & ui3) ^ ui)) + 1518500249) + arr[18];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui3 ^ ui4) & ui2) ^ ui4)) + 1518500249) + arr[19];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + 1859775393) + arr[20];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + 1859775393) + arr[21];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + 1859775393) + arr[22];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + 1859775393) + arr[23];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + 1859775393) + arr[24];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + 1859775393) + arr[25];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + 1859775393) + arr[26];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + 1859775393) + arr[27];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + 1859775393) + arr[28];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + 1859775393) + arr[29];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + 1859775393) + arr[30];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + 1859775393) + arr[31];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + 1859775393) + arr[32];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + 1859775393) + arr[33];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + 1859775393) + arr[34];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + 1859775393) + arr[35];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + 1859775393) + arr[36];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + 1859775393) + arr[37];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + 1859775393) + arr[38];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + 1859775393) + arr[39];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui1 & ui2) | (ui1 & ui3)) | (ui2 & ui3))) + -1894007588) + arr[40];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui & ui1) | (ui & ui2)) | (ui1 & ui2))) + -1894007588) + arr[41];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui4 & ui) | (ui4 & ui1)) | (ui & ui1))) + -1894007588) + arr[42];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui3 & ui4) | (ui3 & ui)) | (ui4 & ui))) + -1894007588) + arr[43];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui2 & ui3) | (ui2 & ui4)) | (ui3 & ui4))) + -1894007588) + arr[44];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui1 & ui2) | (ui1 & ui3)) | (ui2 & ui3))) + -1894007588) + arr[45];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui & ui1) | (ui & ui2)) | (ui1 & ui2))) + -1894007588) + arr[46];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui4 & ui) | (ui4 & ui1)) | (ui & ui1))) + -1894007588) + arr[47];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui3 & ui4) | (ui3 & ui)) | (ui4 & ui))) + -1894007588) + arr[48];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui2 & ui3) | (ui2 & ui4)) | (ui3 & ui4))) + -1894007588) + arr[49];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui1 & ui2) | (ui1 & ui3)) | (ui2 & ui3))) + -1894007588) + arr[50];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui & ui1) | (ui & ui2)) | (ui1 & ui2))) + -1894007588) + arr[51];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui4 & ui) | (ui4 & ui1)) | (ui & ui1))) + -1894007588) + arr[52];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui3 & ui4) | (ui3 & ui)) | (ui4 & ui))) + -1894007588) + arr[53];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui2 & ui3) | (ui2 & ui4)) | (ui3 & ui4))) + -1894007588) + arr[54];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + (((ui1 & ui2) | (ui1 & ui3)) | (ui2 & ui3))) + -1894007588) + arr[55];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + (((ui & ui1) | (ui & ui2)) | (ui1 & ui2))) + -1894007588) + arr[56];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + (((ui4 & ui) | (ui4 & ui1)) | (ui & ui1))) + -1894007588) + arr[57];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + (((ui3 & ui4) | (ui3 & ui)) | (ui4 & ui))) + -1894007588) + arr[58];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + (((ui2 & ui3) | (ui2 & ui4)) | (ui3 & ui4))) + -1894007588) + arr[59];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + -899497514) + arr[60];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + -899497514) + arr[61];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + -899497514) + arr[62];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + -899497514) + arr[63];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + -899497514) + arr[64];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + -899497514) + arr[65];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + -899497514) + arr[66];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + -899497514) + arr[67];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + -899497514) + arr[68];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + -899497514) + arr[69];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + -899497514) + arr[70];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + -899497514) + arr[71];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + -899497514) + arr[72];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + -899497514) + arr[73];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + -899497514) + arr[74];
ui2 = (ui2 << 30) | (ui2 >> 2);
ui4 += ((((ui << 5) | (ui >> 27)) + ((ui1 ^ ui2) ^ ui3)) + -899497514) + arr[75];
ui1 = (ui1 << 30) | (ui1 >> 2);
ui3 += ((((ui4 << 5) | (ui4 >> 27)) + ((ui ^ ui1) ^ ui2)) + -899497514) + arr[76];
ui = (ui << 30) | (ui >> 2);
ui2 += ((((ui3 << 5) | (ui3 >> 27)) + ((ui4 ^ ui) ^ ui1)) + -899497514) + arr[77];
ui4 = (ui4 << 30) | (ui4 >> 2);
ui1 += ((((ui2 << 5) | (ui2 >> 27)) + ((ui3 ^ ui4) ^ ui)) + -899497514) + arr[78];
ui3 = (ui3 << 30) | (ui3 >> 2);
ui += ((((ui1 << 5) | (ui1 >> 27)) + ((ui2 ^ ui3) ^ ui4)) + -899497514) + arr[79];
ui2 = (ui2 << 30) | (ui2 >> 2);
arr1 = this.c[null] = arr1[null] + ui;
arr1 = this.c[1] = arr1[1] + ui1;
arr1 = this.c[2] = arr1[2] + ui2;
arr1 = this.c[3] = arr1[3] + ui3;
arr1 = this.c[4] = arr1[4] + ui4;
}