Converter para representação decimal em Q

O verbo “sv” ( s tring de v ector) se usado com argumentos numéricos em ambos os lados produzirá a representação decimal do número à sua direita usando como base o número à sua esquerda.

O número à esquerda pode ser qualquer coisa, incluindo números negativos, zero e um (ao contrário do tutorial “Q para mortais” )

  • Quando o operando esquerdo é zero, a saída é apenas o dígito mais à esquerda
  • Quando o operando esquerdo é igual a um, a saída é apenas a soma de todos os dígitos convertidos no sistema decimal.
  • Quando o operando esquerdo é negativo, a saída é calculada como para a base positiva equivalente, mas com as potências ímpares negadas.

Observe que todos os dígitos são primeiro convertidos para o sistema decimal e depois adicionados ao total.

As únicas bases possíveis são 2, 10 e 256.

Exemplos:

0 sv 1110b / saída é 0

0 sv 0xffff0a / saída é 10

1 sv 1110b / saída é 3

1 sv 0xffff0a / saída é 255 + 255 + 10 = 520

-2 sv 1110b / saída é 0 * 1 + 1 * (- 2) + 1 * (-2) ^ 2 + 1 * (-2) ^ 3 = -6

-3 sv 0xffff0a / saída é 10 + 255 * (-3) + 255 * (-3) ^ 2 = 1540