Deslocamento aritmético à direita de inteiros
Esta calculadora de deslocamento aritmético à direita move os bits de um inteiro com sinal e copia o bit mais significativo para as posições abertas à esquerda.
Executar grátis
Escolha a largura, informe um inteiro decimal, hexadecimal ou binário com sinal e defina o deslocamento. O resultado traz valores decimais exatos e padrões binários preenchidos até a largura escolhida, sem depender do tamanho inteiro implícito de uma linguagem.
Escolha primeiro a largura com sinal
O deslocamento aritmético só é preciso quando a largura do inteiro é conhecida. Os mesmos bits podem indicar um valor positivo em uma largura e negativo em outra, pois o bit mais significativo representa o sinal em complemento de dois. Escolha de 2 a 1024 bits e forneça um valor dentro da faixa assinada. A calculadora rejeita valores fora dela em vez de truncá-los silenciosamente. Use decimal para números negativos ou os prefixos 0x e 0b ao comparar registradores e campos binários. O padrão retornado é preenchido até a largura selecionada para que todos os bits fiquem visíveis.
Entenda a extensão do sinal
O deslocamento lógico insere zeros à esquerda; o aritmético repete o bit de sinal: zero para valores não negativos e um para negativos. Essa extensão preserva o sinal enquanto os bits se movem. Para negativos, o efeito numérico é uma divisão por potência de 2 arredondada para menos infinito: menos cinco deslocado uma posição resulta em menos três. A saída mostra o resultado decimal, o padrão binário completo e `sign_bit`, que identifica o bit original replicado.
Trate deslocamentos grandes e inteiros exatos
Deslocar zero posições mantém o valor. Quando a contagem alcança ou supera a largura, resta apenas a extensão do sinal: zero para um valor não negativo e menos um para um negativo. Isso evita o mascaramento de contagem adotado por alguns processadores. Todo cálculo usa inteiros de precisão arbitrária. Os resultados decimais são strings porque JSON não representa exatamente todos os valores de 64, 128 ou 1024 bits. Use um tipo inteiro exato ao consumir essas strings.
Casos de uso
Validar instruções com sinal
Compare um emulador, compilador ou processador com uma operação de largura explícita.
Depurar formatos binários
Veja como um campo com sinal reage a operações de bits que preservam o sinal.
Ensinar complemento de dois
Exiba padrões preenchidos ao lado de suas interpretações decimais exatas.
Perguntas frequentes
O que faz um deslocamento aritmético à direita?
Move os bits à direita e preenche as posições altas com cópias do bit de sinal original.
Qual é a diferença para o deslocamento lógico?
O lógico sempre insere zeros; o aritmético insere o sinal e preserva valores negativos.
Quais formatos de entrada são aceitos?
Use texto decimal com sinal ou os prefixos 0x para hexadecimal e 0b para binário. Um sinal inicial é aceito.
O que ocorre quando a contagem alcança a largura?
O resultado é zero para valor não negativo e menos um para valor negativo.
Por que os valores decimais retornam como strings?
Strings preservam inteiros exatos além da faixa numérica segura de JSON.
Quanto custa uma chamada de API?
Cada chamada de API custa US$ 0,002. A versão no navegador usa o mesmo cálculo determinístico.
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/arithmetic-shift-right \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"-42","width":8,"shift":3}'const res = await fetch("https://api.kit.forhosting.com/dev/arithmetic-shift-right", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "-42",
"width": 8,
"shift": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/arithmetic-shift-right",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "-42",
"width": 8,
"shift": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/arithmetic-shift-right", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"-42","width":8,"shift":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"-42","width":8,"shift":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/arithmetic-shift-right", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"value": "-42",
"width": 8,
"shift": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.arithmetic_shift_right",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |