Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Obróć w lewo słowo bez znaku o szerokości od 1 do 64 bitów.
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))) & maskPorównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Sprawdź obrót zerowy i pełne obroty po redukcji liczby przesunięć modulo szerokość, odrzucając ujemne przesunięcia i niemieszczące się wartości.
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 zapewnia środowisko projektowe dla Windows do omawiania zmian kodu zależnych od precyzyjnej reprezentacji. Otwórz kod i opisz wartości oczekiwane przez otaczającą aplikację. Przed zleceniem refaktoryzacji poproś model o wyjaśnienie odpowiednich ograniczeń wejścia, aby pozornie prostsze wyrażenie nie zmieniło po cichu operacji.
Możesz włączyć rotate_word.py do sesji jako konkretne zadanie. Podaj szerokość słowa i oczekiwane zachowanie dla liczby obrotów większej niż ta szerokość, a następnie przejrzyj proponowany kod wraz z wywołaniami. Przykład nadaje rozmowie określony kontrakt; nie oznacza, że środowisko dostarcza bibliotekę operacji bitowych.
Sprawdź propozycję w swoim środowisku na kilku niezależnie określonych danych testowych. Uwzględnij obrót zerowy, obrót o pełną szerokość i wartość z ustawionym najwyższym akceptowanym bitem. Sprawdź też odrzucane dane, zwłaszcza jeśli inna warstwa konwertuje wartości przed wywołaniem funkcji pomocniczej. Zachowaj konwencję reprezentacji aplikacji przez całą zmianę.
Model AI z usuniętymi mechanizmami odmowy może pomagać, jeśli oferuje go obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic. Skonfiguruj połączenie i wymagane uwierzytelnienie w środowisku. Ograniczenia modelu, pojemność kontekstu i dostępność narzędzi nadal zależą od wybranego serwera, dlatego kontrola akceptacji należy do projektu, a nie wynika z etykiety modelu.
Sprawdź obecny kontrakt, zanim uznasz, że oznacza to obrót w przeciwnym kierunku. Przykład odrzuca ujemne liczby. Jeśli wywołujący potrzebuje liczb ze znakiem, zleć to jako jawną zmianę zachowania i określ oczekiwane wyniki po obu stronach zera.
Ta sama liczba całkowita i liczba obrotów mogą dawać różne wyniki dla różnych szerokości słowa. Podaj wszystkie trzy dane wejściowe i oczekiwany wynik. Bez tego model może wyjaśnić poprawną operację używającą innej reprezentacji niż aplikacja.
Może wymuszać reprezentację wyjścia, więc jej usunięcie może zmienić widoczne wyniki. Zapytaj, jak proponowana zmiana utrzymuje wynik w akceptowanej szerokości, i przetestuj dane z wysokimi bitami. Przejrzyj kod serializujący lub porównujący wynik według tej samej konwencji.
Porównaj jego zachowanie z niezależnie dobranymi przykładami granicznymi i obecnymi zasadami wejścia. Przeczytaj wyjaśnienie semantyki przesunięć w danym języku oraz samo wyrażenie. Krótszy kod pomaga tylko wtedy, gdy zachowuje wymaganą reprezentację i zasady odrzucania.
BitWhorl · Zaktualizowano 2026-10-25