Programm: Dezimal in Binär umrechnen
-
You freak me out!
Ich bin dann raus aus dem code obfuscation contest. Mein level ist eindeutig zu niedrig.
Und ja SeppJ, ich hab richtig oldschool-C gelernt. Ich mache alles immer noch q+d; obwohl meistens nicht q aber d. :p
-
und ich wollt grad zu SeppJ sagen, daß wir lieber aufhören sollten, weil sonst EOP nie wieder mit uns spielen mag
// Herumlöscherei außerhalb Moderatorenaufgaben ist unfair, cheater! :p
-
Swordfish schrieb:
// Herumlöscherei außerhalb Moderatorenaufgaben ist unfair, cheater! :p
Eigene Beiträge löschen kann doch jeder, oder? Bin schon lange kein nicht-Moderator mehr gewesen
. So sieht dann auch keiner, dass meine ^-Variante alles genau falsch rum ausgegeben hat :p . Trotzdem würde ich gerne ^ oder ~ nutzen. Aber die verdammte Operatorpriorität lässt mich elend viele Klammern setzen, damit das Ergebnis stimmt.
-
Mein code ist schon schlimm genug, aber den kann man wenigstens noch nachvollziehen ohne kryptische Konzepte zu kennen. Hoffentlich.
EDIT:
Und wenn ich Mod oder gar Global-Mod bin (verkürzt: GoD), dann kann ich fast alles. Zumindest ne Menge.Ist Alles nicht so tragisch.
-
Hm. Was muss man für die letzte Version wissen?
_(I){I&&_(I/2),putchar(48|I&1);}main(){_(3001);}
- implizit int bei Parametern
- implizit extern returning int bei undeklarierten Funktionen
- Kommaoperator
- logische Operatoren (short-circuit evaluation)
- bitweise Operatoren (inkl. soweit nachdenken, daß gerade Zahlen (48) binär eine 0 am Ende haben)
- Operatorprioritäteneigentlich alles Basics?
SeppJ schrieb:
Aber die verdammte Operatorpriorität lässt mich elend viele Klammern setzen, damit das Ergebnis stimmt.
Genau darum hab ich die Richtung aufgegeben.
-
Swordfish schrieb:
eigentlich alles Basics?
Ich würde eher sagen: 100% Non-basics, außer I/2
.
-
Klammern setzen schadet nie. Wenn es auch nur dafür gut ist, die eigenen Gedanken zu sortieren bzw. zu strukturieren oder den code für Andere lesbarer zu machen.
-
Das mit den Klammern würd' ich mir nochmal überlegen: https://www.cise.ufl.edu/~manuel/obfuscate/spinellis
-
Swordfish schrieb:
Hm. Was muss man für die letzte Version wissen?
_(I){I&&_(I/2),putchar(48|I&1);}main(){_(3001);}
Hihi, da wird Dulfried einen Riesenspaß haben, daß zu erklären was du um 1/2 2² zusammengebastelt hast.
Noch eine Frage: was macht die ":2;" hier?
o(O){O?o(O/2),write(1,"01"+(O&1),1):2;}main(){o(3001);}
Die 2 kapier ich auf Anhieb nicht.
-
EOP schrieb:
da wird Dulfried einen Riesenspaß haben, daß zu erklären was du um 1/2 2² zusammengebastelt hast.
Nene, danken muss er schon SeppJ. Er hat den klassischen
_(){}main(_();)
-ioccc-Weg eingeschlagen. Ich war höchstens Mittäter.EOP schrieb:
Noch eine Frage: was macht die ":2;" hier?
o(O){O?o(O/2),write(1,"01"+(O&1),1):2;}main(){o(3001);}
garnix
-
Swordfish schrieb:
garnix
Fies. Muss mal bei Gelegenheit kucken, wie das der Compiler umsetzt.
-
Hoffentlich nur mit
ret
.
-
Swordfish schrieb:
und ich wollt grad zu SeppJ sagen, daß wir lieber aufhören sollten, weil sonst EOP nie wieder mit uns spielen mag
Keine Sorge.
Lerne was ^ stirb dumm.
Und weil ^ reversibel ist:
Lerne nix & stirb trotzdem dumm.