BBitWhorl
AI-werkruimte voor code

Bitrotatie met vaste breedte

Roteer een woord zonder teken linksom binnen een breedte van 1 tot en met 64 bits.

● ● ●BitWhorl●
Werkprocessen · Bitrotatie met vaste breedte ×
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
✳Bitrotatie met vaste breedte
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
01

Controleer vóór het toepassen

Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

02

Modellen

Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.

03

Project

Test nulrotaties en volledige omwentelingen met de telling modulo de breedte en weiger negatieve tellingen en waarden die niet passen.

Werkprocessen

Bitrotatie met vaste breedte

Werkprocessen ↗
Werkprocessen
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
AI-werkruimte voor code

Neem representatieaannames mee in de codebeoordeling

BitWhorl biedt een projectomgeving voor Windows om broncodewijzigingen te bespreken die afhangen van een precieze representatie. Open de code en beschrijf welke waarden de omliggende toepassing verwacht. Vraag het model de relevante invoergrenzen uit te leggen voordat u om refactoring vraagt, zodat een ogenschijnlijk eenvoudigere expressie de bewerking niet stilzwijgend verandert.

U kunt rotate_word.py als concrete taak in die sessie inbrengen. Vermeld de woordbreedte en het verwachte gedrag bij een rotatieaantal groter dan die breedte en beoordeel vervolgens de voorgestelde code samen met de aanroepers. Het voorbeeld geeft het gesprek een afgebakend contract; het beweert niet dat de omgeving een bibliotheek met bitbewerkingen levert.

Gebruik enkele onafhankelijk gespecificeerde testgevallen om het voorstel in uw omgeving te controleren. Neem nulrotatie, rotatie over de volledige breedte en een waarde met de hoogst geaccepteerde bit ingesteld op. Inspecteer ook afgewezen invoer, vooral als een andere laag waarden converteert voordat deze de hulpfunctie aanroept. Behoud de representatieconventie van de toepassing gedurende de hele wijziging.

Een abliterated AI-model kan helpen wanneer een ondersteund OpenAI-compatibel of Anthropic-endpoint dit aanbiedt. Configureer die verbinding en eventuele vereiste toegangsgegevens in de omgeving. Modelbeperkingen, contextcapaciteit en beschikbare tools hangen nog steeds af van de gekozen server, dus de acceptatiecontrole hoort bij uw project en niet bij het modellabel.

Voordat u code met vaste bitbreedte wijzigt

Kan de aanroeper een negatief rotatieaantal doorgeven?

Controleer het huidige contract voordat u aanneemt dat dit rotatie in de omgekeerde richting betekent. Het voorbeeld wijst negatieve aantallen af. Als een aanroeper aantallen met een teken nodig heeft, vraag dat dan als expliciete gedragswijziging en specificeer verwachte resultaten aan beide kanten van nul.

Waarom de breedte vermelden bij het melden van een fout?

Hetzelfde gehele getal en rotatieaantal kunnen bij verschillende woordbreedtes andere resultaten opleveren. Vermeld alle drie de invoerwaarden en de verwachte uitvoer. Zonder die context kan een model een geldige bewerking uitleggen die simpelweg een andere representatie gebruikt dan uw toepassing.

Is een masker alleen een implementatiedetail?

Het kan de uitvoerrepresentatie afdwingen, dus weglaten kan waarneembare resultaten veranderen. Vraag hoe de voorgestelde wijziging uitvoer binnen de geaccepteerde breedte houdt en test gevallen met hoge bits. Beoordeel aanroepers die het resultaat volgens dezelfde conventie serialiseren of vergelijken.

Wat helpt bij het beoordelen van een kortere expressie?

Vergelijk het gedrag met onafhankelijk gekozen grensvoorbeelden en het bestaande invoerbeleid. Lees zowel de uitleg van de verschuivingssemantiek van de taal als de expressie zelf. Kortere broncode is alleen nuttig als de aangepaste code de vereiste representatie en afwijzingsregels behoudt.

Download voor Windows ↗

BitWhorl · Bijgewerkt 2026-10-25