Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 14 из 14
  1. #11
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если что, никто не запрещал указывать начало отсчёта для перечисления
    PHP код:
    enum(<<=1

        
    ADMIN_LEVEL_1 1,
        
    ADMIN_LEVEL_2,
        
    ADMIN_LEVEL_3,
        ...,
        
    ADMIN_LEVEL_32
    };
    enum(<<=1

        
    ADMIN_LEVEL_33 ADMIN_LEVEL_32,
        
    ADMIN_LEVEL_34,
        
    ADMIN_LEVEL_35,
        ...,
        
    ADMIN_LEVEL_64
    }; 
    Не прокатит, в ячейке может хранится лишь 32 бита, поэтому да, больше 32 хранить нельзя.

  2. 2 пользователя(ей) сказали cпасибо:
    DeimoS (16.02.2018) Elrmrnt-Kritik (24.03.2018)
  3. #12
    Аватар для Elrmrnt-Kritik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±
    Не знаю почему, но как-то забыл за эту тему. Спасибо доставил, у кого не было. Извините, что не сделал раньше)

    Я хотел лишь уточнить некоторые моменты.
    1. По большому счету компилятор представляет названия команд и значения из enum в двоичной системе счисления, а потом просто идет сверка? Тогда возникает и еще один вопрос: почему именно &? Ведь если биты одинаковые в двух числах, то и сами числа равны.
    2. Флагами я могу (хотя мне простительно xD) называть только то, где присутствует этот алгоритм, либо вообще любую побитовую операцию?
    3. Можно ли использовать флаги как-то еще, помимо флагов в командах на базе pawncmd? (я ранее лишь с битами работал в отдельности. Для систем обучения и лицензий)

  4. #13
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Elrmrnt-Kritik Посмотреть сообщение
    Не знаю почему, но как-то забыл за эту тему. Спасибо доставил, у кого не было. Извините, что не сделал раньше)

    Я хотел лишь уточнить некоторые моменты.
    1. По большому счету компилятор представляет названия команд и значения из enum в двоичной системе счисления, а потом просто идет сверка? Тогда возникает и еще один вопрос: почему именно &? Ведь если биты одинаковые в двух числах, то и сами числа равны.
    2. Флагами я могу (хотя мне простительно xD) называть только то, где присутствует этот алгоритм, либо вообще любую побитовую операцию?
    3. Можно ли использовать флаги как-то еще, помимо флагов в командах на базе pawncmd? (я ранее лишь с битами работал в отдельности. Для систем обучения и лицензий)
    1) В данном случае необходимо лишь сравнивать один бит, соответственно, что и делает операция AND. При сравнении вы сильно бы зависели от значения других битов, что нарушает логику флагов. Тем не менее, вы можете сравнивать несколько битов, используя операцию AND и OR.
    1. if (flags & (BIT_FLAG_1 | BIT_FLAG_2)) {
    2. // code..
    3. }
    2) Нет, поскольку в программирование есть определение bit flag. Оно говорит о том, что флаг - состояние бита (то есть 0 или 1) в числе. Соответственно, можно сказать, что флаги - упакованные boolean переменные.
    3) Можно, если учитывать предыдущий ответ.

  5. Пользователь сказал cпасибо:
    Elrmrnt-Kritik (24.03.2018)
  6. #14
    Аватар для Elrmrnt-Kritik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±
    Спасибо. Закройте пожалуйста тему.

 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •