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.
Rota una palabra sin signo hacia la izquierda con un ancho de 1 a 64 bits.
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))) & maskCompara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
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.
Prueba rotaciones nulas y completas reduciendo el desplazamiento módulo el ancho, rechazando desplazamientos negativos y valores que no caben.
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))) & maskBitWhorl 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.
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.
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.
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.
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.
BitWhorl · Actualizado 2026-10-25