A linguagem do compilador sem acrônimo pronunciável, abreviado INTERCAL , é uma linguagem de programação muito exclusiva. Entre suas qualidades improdutíveis estão seus operadores binários.
Os dois operadores binários da INTERCAL são intercalados (também conhecidos como misturar ) e selecionados . A intercalação é representada com uma alteração (¢) e a seleção é representada com um quadrado (~).
A intercalação funciona tomando dois números no intervalo de 0 a 65535 e alternando seus bits. Por exemplo:
234 ¢ 4321
234 = 0000011101010
4321 = 1000011100001
Result: 01000000001111110010001001
Output: 16841865
Selecione trabalhos, pegando dois números no intervalo de 0 a 65535, pegando os bits no primeiro operando que estão na mesma posição que 1s no segundo operando e colocando esses bits à direita.
2345 ~ 7245
2345 = 0100100101001
7245 = 1110001001101
Taken : 010 0 10 1
Result: 0100101
Output: 37
Nesse desafio, você receberá uma expressão binária usando a operação intercalar ou selecionar. Você deve calcular o resultado usando o menor número possível de bytes.
A expressão será dada como uma sequência separada por espaço, consistindo em um número inteiro em 0-65535, um espaço em um ¢ou em ~um espaço e um número inteiro em 0-65535.
A entrada e a saída podem ser feitas através de qualquer sistema padrão (STDIN, função, linha de comando, etc.). Falhas padrão proibidas.
Exemplos:
5 ¢ 6
54
5 ~ 6
2
51234 ¢ 60003
4106492941
51234 ~ 60003
422
Este é o código golf - o menor número de bytes vence. Boa sorte.
EDIT: Como alguns idiomas não suportam o símbolo de alteração (¢) da INTERCAL, você pode usar o símbolo de muito dinheiro ($), com uma penalidade de 5 bytes.
$.
FIVE ONE TWO THREE FOUR? E a saída não deveria estar em algarismos romanos?