BBitWhorl
Espacio de programación con IA

Rotación de bits de ancho fijo

Rota una palabra sin signo hacia la izquierda con un ancho de 1 a 64 bits.

● ● ●BitWhorl●
Flujos de trabajo · Rotación de bits de ancho fijo ×
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
✳Rotación de bits de ancho fijo
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

02

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

03

Proyecto

Prueba rotaciones nulas y completas reduciendo el desplazamiento módulo el ancho, rechazando desplazamientos negativos y valores que no caben.

Flujos de trabajo

Rotación de bits de ancho fijo

Flujos de trabajo ↗
Flujos de trabajo
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
Espacio de programación con IA

Incluye los supuestos de representación en la revisión del código

BitWhorl proporciona un entorno de proyectos para Windows donde analizar cambios de código que dependen de una representación precisa. Abre el código y describe los valores que espera la aplicación que lo rodea. Pide al modelo que explique los límites pertinentes de entrada antes de solicitar una refactorización, para que una expresión aparentemente más sencilla no cambie silenciosamente la operación.

Puedes incorporar rotate_word.py a esa sesión como tarea concreta. Especifica el ancho de palabra y el comportamiento esperado cuando el número de rotaciones supera ese ancho; después revisa el código propuesto junto con el que lo llama. El ejemplo aporta a la conversación un contrato acotado; no implica que el entorno proporcione una biblioteca de operaciones de bits.

Usa algunos casos de prueba especificados independientemente para comprobar la propuesta en tu entorno. Incluye una rotación cero, una rotación del ancho completo y un valor cuyo bit admitido más alto esté activado. Inspecciona también las entradas rechazadas, especialmente si otra capa convierte valores antes de llamar a la función auxiliar. Conserva la convención de representación de la aplicación durante todo el cambio.

Un modelo de IA sin censura puede ayudar si lo ofrece un servicio compatible con OpenAI o Anthropic admitido. Configura esa conexión y las credenciales necesarias en el entorno. Las restricciones del modelo, la capacidad de contexto y las herramientas disponibles siguen dependiendo del servidor seleccionado, por lo que la comprobación de aceptación corresponde a tu proyecto y no a la etiqueta del modelo.

Antes de cambiar código de ancho fijo

¿Puede el código que llama a la función pasar un número de rotaciones negativo?

Comprueba el contrato actual antes de suponer que significa rotar en sentido contrario. El ejemplo rechaza los valores negativos. Si se necesitan cantidades con signo, solicítalo como cambio explícito de comportamiento y especifica los resultados esperados a ambos lados de cero.

¿Por qué incluir el ancho al informar de un fallo?

El mismo entero y la misma cantidad pueden producir resultados distintos con diferentes anchos de palabra. Incluye las tres entradas y la salida esperada. Sin ese contexto, un modelo puede explicar una operación válida que simplemente usa una representación distinta de la de tu aplicación.

¿Una máscara es solo un detalle de implementación?

Puede imponer la representación de salida, por lo que eliminarla puede cambiar resultados observables. Pregunta cómo mantiene la modificación propuesta la salida dentro del ancho admitido y prueba casos con bits altos. Revisa el código que serializa o compara el resultado con esa misma convención.

¿Qué ayuda a evaluar una expresión más corta?

Compara su comportamiento con ejemplos límite elegidos de forma independiente y con la política de entrada existente. Lee la explicación de la semántica de desplazamientos del lenguaje, además de la propia expresión. Un código más corto solo es útil si conserva la representación requerida y el comportamiento de rechazo.

Descargar para Windows ↗

BitWhorl · Actualizado 2026-10-25