16
INTERCALの二項演算子を実装する
発音可能な頭字語のないコンパイラ言語(略してINTERCAL)は、非常にユニークなプログラミング言語です。その再現性のなさの中には、二項演算子があります。 INTERCALの2つの2項演算子は、インターリーブ(ミングルとも呼ばれます)、およびselectです。インターリーブは変更(¢)で表され、選択は波形(〜)で表されます。 インターリーブは、0〜65535の範囲の2つの数値を取得し、それらのビットを交互に切り替えることで機能します。例えば: 234 ¢ 4321 234 = 0000011101010 4321 = 1000011100001 Result: 01000000001111110010001001 Output: 16841865 Selectは、0〜65535の範囲の2つの数値を取得し、2番目のオペランドの1と同じ位置にある最初のオペランドのビットを取得し、それらのビットを右詰めします。 2345 ~ 7245 2345 = 0100100101001 7245 = 1110001001101 Taken : 010 0 10 1 Result: 0100101 Output: 37 この課題では、インターリーブまたは選択操作のいずれかを使用してバイナリ式が与えられます。可能な限り少ないバイトを使用して、結果を計算する必要があります。 式は、0〜65535の整数、スペース¢または~、スペース、0〜65535の整数で構成されるスペース区切りの文字列として指定されます。 入力および出力は、標準システム(STDIN、関数、コマンドラインなど)を介して行うことができます。標準的な抜け穴は禁止されています。 例: 5 ¢ 6 54 5 ~ 6 2 51234 ¢ …
29
code-golf