BBitWhorl
Робоче середовище з ШІ для коду

Циклічний зсув бітів заданої ширини

Виконайте циклічний зсув беззнакового слова ліворуч у межах ширини від 1 до 64 бітів.

● ● ●BitWhorl●
Сценарії · Циклічний зсув бітів заданої ширини ×
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
✳Циклічний зсув бітів заданої ширини
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
01

Перевірте перед застосуванням

Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.

02

Моделі

Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.

03

Проєкт

Перевірте нульовий і повний оберти зі зведенням кількості кроків за модулем ширини, відхиляючи від’ємні кроки та завеликі значення.

Сценарії

Циклічний зсув бітів заданої ширини

Сценарії ↗
Сценарії
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
Робоче середовище з ШІ для коду

Включайте припущення про подання даних до перевірки коду

BitWhorl надає середовище проєкту для Windows, де можна обговорювати зміни коду, залежні від точного подання даних. Відкрийте код і опишіть значення, яких очікує решта застосунку. Перш ніж просити рефакторинг, попросіть модель пояснити відповідні обмеження вхідних даних, щоб на вигляд простіший вираз непомітно не змінив операцію.

Конкретним завданням для такого сеансу може бути rotate_word.py. Вкажіть ширину слова й очікувану поведінку, коли кількість позицій зсуву перевищує цю ширину, а потім перевірте запропонований код разом із кодом виклику. Приклад задає розмові обмежений контракт; він не означає, що середовище постачає бібліотеку бітових операцій.

Перевірте пропозицію у своєму середовищі на кількох незалежно визначених тестових прикладах. Додайте нульовий зсув, зсув на повну ширину та значення зі встановленим найстаршим допустимим бітом. Перевірте також відхилювані вхідні дані, особливо якщо інший шар перетворює значення перед викликом допоміжної функції. Протягом усієї зміни зберігайте домовленість застосунку про подання даних.

Аблітерована модель ШІ може допомогти, якщо її пропонує підтримувана OpenAI-сумісна кінцева точка або кінцева точка Anthropic. Налаштуйте це підключення та потрібні облікові дані в середовищі. Обмеження моделі, місткість контексту й доступність інструментів усе одно залежать від вибраного сервера, тому перевірка прийнятності належить вашому проєкту, а не назві категорії моделі.

Перед зміною коду фіксованої ширини

Чи може код виклику передавати від’ємну кількість позицій зсуву?

Перевірте поточний контракт, перш ніж припускати, що це означає зсув у протилежний бік. Приклад відхиляє від’ємні значення. Якщо потрібна знакова кількість позицій, запитайте це як явну зміну поведінки й визначте очікувані результати по обидва боки нуля.

Навіщо вказувати ширину в повідомленні про помилку?

Те саме ціле число й та сама кількість позицій можуть давати різні результати за різної ширини слова. Надайте всі три вхідні значення та очікуваний результат. Без цього контексту модель може пояснити коректну операцію, яка просто використовує інше подання, ніж ваш застосунок.

Чи є маска лише деталлю реалізації?

Вона може забезпечувати подання результату, тому її вилучення здатне змінити спостережувану поведінку. Запитайте, як правка утримує результат у допустимій ширині, та перевірте приклади зі старшим бітом. Перегляньте код, що серіалізує або порівнює результат за тією самою домовленістю.

Що допомагає оцінити коротший вираз?

Порівняйте його поведінку з незалежно вибраними граничними прикладами та наявними правилами вхідних даних. Прочитайте пояснення семантики зсувів у мові, а також сам вираз. Коротший код корисний лише тоді, коли зберігає потрібне подання та правила відхилення даних.

Завантажити для Windows ↗

BitWhorl · Оновлено 2026-10-25