64-битные системы

Тема в разделе "Машинное отделение", создана пользователем krey, 30 окт 2007.

  1. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    читаю сейчас реалкодинг (ищу вдохновение). в связи с тем что у меня дома 64-бит машина, решил почитать статьи на данную тему. заинтересовала следующая статья: о проблемах перехода на 64 бит. еще не дочитал, но уже есть всякие глупые идеи. например следующая: насколько рационально представлять доску a виде 12 целых чисел? первое число битами показывает нахождение белых пешек, второе - белых коней и т.д. конечно, это представление можно уменьшить до 8 целых чисел... в современном шахматном программировании делается так?
     
  2. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    36
    Да, это называется bitboards. Только еще вводят специальные повернутые битовые маски для того, чтобы по таблицам сразу получать все хода по вертикали и диагоналям.
     
  3. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    а насколько просто перенести эти битборды из 32 бит в 64
     
  4. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Автоматически, компилятор всё сам сделает.
    В 32-битном режиме 64-битные целые только эмулируются, насколько я знаю. Реальные арифметические операции с ними медленнее, чем с 32-битными - но это единственная разница с точки зрения языков уровнем выше асма.
     
  5. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
  6. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    36
    Под 32 бита есть несколько 64-битных операций, но они обычно связаны с регистровой парой (т. е. пара 32-битных регистров EAX:EDX рассматривается как 64-битный).

    А вообще при программировании указываешь 64-битный тип (UINT64 или Int64), а дальше это забота компилятора.
     
  7. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    другой вопрос - а не может ли быть каких-либо специфичных проблем или решений, не связанных с представлениями доски?
     
  8. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    64-битным числом еще обозначается хэш-ключ позиции. ну и битборды (если они есть в проге).
    для всего остального 32-бит хватает (константы, переменные итд)
     
  9. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    36
    Не совсем понятна суть вопроса.
     
  10. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    http://rsdn.ru/article/cpp/XXtraps64bit.xml

    20 ловушек переноса Си++ - кода на 64-битную платформу
    Автор: Андрей Карпов
    Источник: RSDN Magazine #1-2007
    Опубликовано: 25.04.2007
    Исправлено: 28.07.2007
    Версия текста: 1.0
    1. Отключенные предупреждения
    2. Использование функций с переменным количеством аргументов
    3. Магические константы
    4. Хранение целочисленных значений в double
    5. Операции сдвига
    6. Упаковка указателей
    7. Memsize-типы в объединениях
    8. Изменение типа массива
    9. Виртуальные функции с аргументами типа memsize
    10. Сериализация и обмен данными
    11. Битовые поля
    12. Адресная арифметика с указателями
    13. Индексация массивов
    14. Смешанное использование простых целочисленных типов и memsize-типов
    16. Неявные приведения типов при использовании функций
    17. Перегруженные функции
    19. Выравнивание данных
    20. Явные приведения типов
    Диагностика ошибок
    Юнит-тестирование
    Просмотр кода
    Встроенные средства компиляторов
    Статические анализаторы
    Заключение
    Ресурсы
     
  11. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    именно про побитовые операции (сдвиг), константы и проблемы с типами.
    например, разрядность платформы растёт, с ней размер int, а другие типы данных?
    одна из распространённых проблем 32 разрядов:
    [c]long int a = 5000*5000;[/c]
    в 64 бит снимается (точнее, планка растёт). но уверен, что должны быть и другие кочки.
     
  12. Mustitz
    Оффлайн

    Mustitz баннер

    Репутация:
    36
    Ну... WinPooh кое-что перечислил, возможно найдется и что-то еще. Проблемы с портированием присутствуют. Но, в большей части случаев, не смертельные.