BBitWhorl
Ambiente de programação com IA

Rotação de bits com largura fixa

Gire uma palavra sem sinal à esquerda com largura de 1 a 64 bits.

● ● ●BitWhorl●
Fluxos de trabalho · Rotação de bits com largura fixa ×
def rotate_left(value, count, width):
    if any(type(x) is not int for x in (value, count, width)):
        raise ValueError("rotate.type")
    if not 1 <= width <= 64 or not 0 <= value < (1 << width) or count < 0:
        raise ValueError("rotate.range")
    count %= width
    mask = (1 << width) - 1
    return ((value << count) | (value >> (width - count))) & mask
✳Rotação de bits com largura fixa
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
01

Revise antes de aplicar

Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

02

Modelos

Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

03

Projeto

Teste rotações nulas e completas reduzindo a contagem módulo a largura, rejeitando contagens negativas e valores que não cabem.

Fluxos de trabalho

Rotação de bits com largura fixa

Fluxos de trabalho ↗
Fluxos de trabalho
def rotate_left(value, count, width):
    if any(type(x) is not int for x in (value, count, width)):
        raise ValueError("rotate.type")
    if not 1 <= width <= 64 or not 0 <= value < (1 << width) or count < 0:
        raise ValueError("rotate.range")
    count %= width
    mask = (1 << width) - 1
    return ((value << count) | (value >> (width - count))) & mask
Ambiente de programação com IA

Inclua as premissas de representação na revisão do código

BitWhorl oferece um ambiente de projeto para Windows em que você discute alterações de código-fonte que dependem de uma representação precisa. Abra o código e descreva os valores esperados pela aplicação ao redor. Peça ao modelo que explique os limites de entrada pertinentes antes de solicitar uma refatoração, para que uma expressão aparentemente mais simples não mude silenciosamente a operação.

Você pode levar rotate_word.py à sessão como tarefa concreta. Declare a largura da palavra e o comportamento esperado para uma contagem de rotação maior que essa largura, depois revise o código proposto junto com seus chamadores. O exemplo dá à conversa um contrato delimitado; não é uma alegação de que o ambiente fornece uma biblioteca de operações de bits.

Use alguns casos de teste especificados independentemente para conferir a proposta no seu ambiente. Inclua rotação zero, rotação de uma largura inteira e um valor com o bit mais alto aceito ativado. Inspecione também entradas rejeitadas, sobretudo se outra camada converte valores antes de chamar a função auxiliar. Preserve a convenção de representação da aplicação durante toda a edição.

Um modelo de IA com mecanismos de recusa removidos pode ajudar quando oferecido por um endpoint suportado compatível com OpenAI ou da Anthropic. Configure essa conexão e quaisquer credenciais exigidas no ambiente. As restrições do modelo, a capacidade de contexto e a disponibilidade de ferramentas ainda dependem do servidor selecionado; portanto, a verificação de aceitação cabe ao projeto, e não ao rótulo do modelo.

Antes de alterar código de largura fixa

O chamador pode passar uma contagem negativa de rotação?

Confira o contrato atual antes de presumir que isso significa rotação na direção oposta. O exemplo rejeita contagens negativas. Se um chamador precisar de contagens com sinal, solicite isso como uma mudança explícita de comportamento e especifique resultados esperados dos dois lados de zero.

Por que incluir a largura ao relatar uma falha?

O mesmo inteiro e a mesma contagem podem produzir resultados diferentes com larguras de palavra distintas. Inclua as três entradas e a saída esperada. Sem esse contexto, um modelo pode explicar uma operação válida que apenas usa outra representação, diferente da aplicação.

Uma máscara é apenas um detalhe de implementação?

Ela pode impor a representação de saída, de modo que removê-la pode alterar resultados observáveis. Pergunte como a edição proposta mantém a saída dentro da largura aceita e teste casos com bits altos. Revise chamadores que serializam ou comparam o resultado segundo a mesma convenção.

O que ajuda a avaliar uma expressão mais curta?

Compare seu comportamento com exemplos de limite escolhidos independentemente e com a política de entrada existente. Leia a explicação da semântica de deslocamento da linguagem, além da própria expressão. Código mais curto só é útil se preservar a representação exigida e o comportamento de rejeição.

Baixar para Windows ↗

BitWhorl · Atualizado 2026-10-25