ForHosting KIT · Ferramentas para dev

Calculadora de rotação de bits à esquerda e à direita

Esta calculadora faz a rotação circular para a esquerda ou direita em um inteiro sem sinal de largura fixa.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Os bits que saem por uma extremidade reaparecem imediatamente na outra, como ocorre em registradores de deslocamento, primitivas criptográficas, somas de verificação, sistemas embarcados e formatos de baixo nível. Informe um valor decimal, hexadecimal ou binário, escolha a largura e a direção e defina uma contagem não negativa. A calculadora preserva as posições de zero à esquerda e apresenta resultados exatos em decimal, binário de largura fixa e hexadecimal preenchido.

Escolha o valor e a largura exata do registrador

Uma rotação só tem significado quando a largura em bits é conhecida. O mesmo valor numérico pode gerar resultados diferentes em registradores de 8 e 16 bits, pois cada largura posiciona o limite de retorno em um ponto distinto. Informe o valor sem sinal em notação decimal comum ou use o prefixo 0x para hexadecimal e 0b para binário. Depois, escolha uma largura de 1 a 4096 bits. O valor precisa caber integralmente nela; a rejeição de valores grandes demais impede que um truncamento implícito esconda informações. As posições de zero à esquerda fazem parte do registrador mesmo quando não aparecem na entrada. Por exemplo, o decimal 5 com largura 8 é tratado como 00000101, e não apenas 101. O campo binário retornado sempre é preenchido até a largura escolhida, enquanto o hexadecimal recebe dígitos completos suficientes para representá-la. Essa exibição explícita permite comparar facilmente o resultado com um diagrama de registrador, campo de protocolo, depurador ou implementação em uma linguagem de programação.

Entenda o movimento circular para ambos os lados

A rotação circular difere do deslocamento lógico comum porque nenhum bit é descartado e nenhum zero novo é inserido. Na rotação para a esquerda, os bits avançam em direção à extremidade mais significativa; aqueles que atravessam o limite retornam às posições menos significativas. Na rotação para a direita, o movimento se inverte, e os bits que saem pela extremidade menos significativa reaparecem na mais significativa. A calculadora aplica a operação ao padrão completo de largura fixa em um cálculo inteiro exato. Uma contagem igual à largura devolve o padrão original, assim como qualquer múltiplo inteiro dela. Por isso, a contagem enviada é reduzida módulo a largura, e a contagem efetiva aparece como normalized_shift no resultado. Isso ajuda a conferir códigos que aceitam contagens irrestritas ou a modelar hardware cujo seletor necessita apenas de um estado para cada posição do registrador. Uma contagem efetiva igual a zero é tratada diretamente e preserva o valor sem tentar um deslocamento inválido de largura completa.

Leia a saída e valide uma implementação

A resposta mantém o valor original em formato decimal normalizado, a largura escolhida, a contagem solicitada, a contagem efetiva e a direção. Em seguida, mostra o valor rotacionado em decimal, binário de largura fixa e hexadecimal em maiúsculas. Essas formas equivalentes atendem a verificações diferentes: o binário expõe cada bit retornado, o hexadecimal corresponde de maneira compacta a registradores e documentação técnica, e o decimal é conveniente para API ou casos de teste que evitam literais prefixados. Para testar uma implementação, use um padrão com bits ativos perto das duas extremidades, tornando qualquer deslocamento incorreto evidente. Teste também contagem zero, contagem igual à largura e contagem maior que ela. Esses casos revelam erros comuns de redução modular e de regras específicas da linguagem. O algoritmo usa aritmética inteira de precisão arbitrária, em vez dos operadores JavaScript de 32 bits; portanto, larguras superiores não sofrem conversão com sinal nem mascaramento silencioso. O processamento é determinístico, local e limitado, sem rede ou estado aleatório ou temporal.

Confira a lógica de registradores embarcados

Compare a saída do firmware com um padrão binário exato de largura fixa antes de escrever ou revisar o código do dispositivo.

Valide etapas criptográficas

Confirme rotações circulares usadas em funções hash, cifras e operações de mistura sem surpresas da aritmética de 32 bits com sinal.

Monte vetores de teste de protocolos

Gere valores esperados decimais, binários e hexadecimais para campos cujos bits retornam dentro de uma largura definida.

Qual é a diferença entre rotacionar e deslocar bits?

O deslocamento lógico descarta bits em uma extremidade e insere zeros na outra. A rotação conduz esses bits à extremidade oposta, mantendo todos no padrão de largura fixa.

O que acontece quando a contagem supera a largura?

A contagem é reduzida módulo a largura. A resposta mostra o deslocamento solicitado e o deslocamento efetivo normalizado.

Posso informar valores hexadecimais ou binários?

Sim. Use 0x antes do valor hexadecimal e 0b antes do binário. Uma entrada sem prefixo é interpretada como decimal.

Por que o valor precisa caber na largura escolhida?

O truncamento automático poderia remover bits altos silenciosamente e gerar um resultado enganoso. A calculadora rejeita o valor para que você corrija explicitamente o valor ou a largura.

Quanto custa uma solicitação de API?

Cada solicitação de API custa US$ 0,002. A versão no navegador executa localmente o mesmo cálculo determinístico.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/elec/rotate-bits

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/elec/rotate-bits \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"150","width":8,"shift":3,"direction":"left"}'
{
  "value": "150",
  "width": 8,
  "shift": 3,
  "direction": "left"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.rotate_bits",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →