BBitWhorl
Espace de développement avec IA

Rotation de bits à largeur fixe

Effectue une rotation à gauche d’un mot non signé sur une largeur de 1 à 64 bits.

● ● ●BitWhorl●
Méthodes de travail · Rotation de bits à largeur fixe ×
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
✳Rotation de bits à largeur fixe
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
01

Vérifiez avant d’appliquer

Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.

02

Modèles

Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.

03

Projet

Teste les rotations nulles et complètes en réduisant le compte modulo la largeur, en refusant les comptes négatifs et les valeurs trop grandes.

Méthodes de travail

Rotation de bits à largeur fixe

Méthodes de travail ↗
Méthodes de travail
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
Espace de développement avec IA

Inclure les hypothèses de représentation dans la revue de code

BitWhorl fournit un espace de projet Windows pour discuter de modifications du code source qui dépendent d’une représentation précise. Ouvrez le code et décrivez les valeurs attendues par l’application environnante. Demandez au modèle d’expliquer les limites d’entrée pertinentes avant une refactorisation, afin qu’une expression apparemment plus simple ne modifie pas silencieusement l’opération.

Vous pouvez apporter rotate_word.py dans cette session comme tâche concrète. Précisez la largeur du mot et le comportement attendu pour un nombre de rotations supérieur à cette largeur, puis examinez le code proposé et ses appelants. L’exemple donne un contrat borné à la conversation ; il ne signifie pas que l’espace fournit une bibliothèque d’opérations sur les bits.

Utilisez quelques cas de test spécifiés indépendamment pour vérifier la proposition dans votre environnement. Incluez une rotation nulle, une rotation d’une largeur entière et une valeur dont le bit accepté le plus haut est activé. Examinez aussi les entrées rejetées, surtout si une autre couche convertit les valeurs avant d’appeler l’utilitaire. Préservez la convention de représentation de l’application pendant toute la modification.

Un modèle d’IA ablaté peut aider s’il est proposé par un point de terminaison compatible OpenAI ou Anthropic pris en charge. Configurez cette connexion et les identifiants nécessaires dans l’espace. Les restrictions du modèle, la capacité de contexte et les outils dépendent toujours du serveur choisi ; la vérification d’acceptation relève donc de votre projet plutôt que de l’étiquette du modèle.

Avant de modifier du code à largeur fixe

L’appelant peut-il passer un nombre de rotations négatif ?

Vérifiez le contrat actuel avant de supposer qu’il signifie une rotation inverse. L’exemple rejette les nombres négatifs. Si un appelant nécessite des nombres signés, demandez explicitement ce changement et précisez les résultats attendus de part et d’autre de zéro.

Pourquoi inclure la largeur dans un signalement d’échec ?

Le même entier et le même nombre de rotations peuvent produire des résultats différents selon la largeur du mot. Incluez les trois entrées et la sortie attendue. Sans ce contexte, un modèle peut expliquer une opération valide qui utilise simplement une autre représentation que votre application.

Un masque est-il seulement un détail d’implémentation ?

Il peut imposer la représentation de sortie ; le supprimer peut donc modifier les résultats observables. Demandez comment la modification conserve la largeur acceptée et testez des cas avec des bits hauts. Examinez les appelants qui sérialisent ou comparent le résultat selon la même convention.

Comment évaluer une expression plus courte ?

Comparez son comportement à des exemples limites choisis indépendamment et à la politique d’entrée existante. Lisez l’explication des décalages du langage ainsi que l’expression. Un code plus court n’est utile que s’il conserve la représentation et le comportement de rejet requis.

Télécharger pour Windows ↗

BitWhorl · Mis à jour 2026-10-25