Die Compiler-Sprache ohne aussprechbares Akronym, kurz INTERCAL , ist eine sehr einzigartige Programmiersprache. Zu seinen nicht reproduzierbaren Eigenschaften zählen die binären Operatoren.
Die beiden binären Operatoren von INTERCAL sind Interleave (auch als Mingle bezeichnet ) und Select . Interleave wird mit einer Änderung (¢) dargestellt, und Select wird mit einem Rechteck (~) dargestellt.
Interleave funktioniert, indem zwei Zahlen im Bereich von 0 bis 65535 abwechselnd verwendet werden. Zum Beispiel:
234 ¢ 4321
234 = 0000011101010
4321 = 1000011100001
Result: 01000000001111110010001001
Output: 16841865
Wählen Sie Werke aus, indem Sie zwei Zahlen im Bereich 0-65535 nehmen, die Bits im ersten Operanden nehmen, die sich an der gleichen Position befinden wie 1s im zweiten Operanden, und diese Bits rechts packen.
2345 ~ 7245
2345 = 0100100101001
7245 = 1110001001101
Taken : 010 0 10 1
Result: 0100101
Output: 37
In dieser Herausforderung erhalten Sie einen binären Ausdruck, der entweder die Interleave- oder die Select-Operation verwendet. Sie müssen das Ergebnis mit möglichst wenigen Bytes berechnen.
Der Ausdruck wird als durch Leerzeichen getrennte Zeichenfolge angegeben, die aus einer Ganzzahl in 0-65535, einem Leerzeichen ¢oder ~einem Leerzeichen und einer Ganzzahl in 0-65535 besteht.
Die Ein- und Ausgabe kann über ein beliebiges Standardsystem (STDIN, Funktion, Befehlszeile usw.) erfolgen. Standardlücken verboten.
Beispiele:
5 ¢ 6
54
5 ~ 6
2
51234 ¢ 60003
4106492941
51234 ~ 60003
422
Dies ist Code Golf - die wenigsten Bytes gewinnen. Viel Glück.
BEARBEITEN: Da einige Sprachen das INTERCAL-Änderungssymbol (¢) nicht unterstützen, können Sie stattdessen das Big-Money-Symbol ($) mit einer 5-Byte-Strafe verwenden.
$.
FIVE ONE TWO THREE FOUR? Und sollte die Ausgabe nicht in römischen Ziffern erfolgen?