powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с битовым сдвигом
4 сообщений из 4, страница 1 из 1
Работа с битовым сдвигом
    #39551705
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        //roles
        int lUser = 2;//10
        int lDba = 4;//100
        int lAdmin = 8;//1000

        //users rights
        int lTomRights = 2;//10 - User
        int lArnorldRights = 6;//110 - User + Dba
        int lSupermanRights = 10;//1010 - User + Admin

        //как побитовым смещением определить права вышеперечисленных пользователей?
...
Рейтинг: 0 / 0
Работа с битовым сдвигом
    #39551708
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK1988,

так "битовым сдвигом" или "побитовым смещением"?

Почему не просто маской?
Код: java
1.
2.
3.
boolean isUserInRole(int rights, int role){
    return rights & role != 0;
}



Но, можно конечно смещать вправо и проверять на единицу, но тогда у нас строгий порядок ролей должен быть. Что не есть хорошо.
...
Рейтинг: 0 / 0
Работа с битовым сдвигом
    #39551720
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczAK1988,

так "битовым сдвигом" или "побитовым смещением"?

Почему не просто маской?
Код: java
1.
2.
3.
boolean isUserInRole(int rights, int role){
    return rights & role != 0;
}



Но, можно конечно смещать вправо и проверять на единицу, но тогда у нас строгий порядок ролей должен быть. Что не есть хорошо.

Operator '&'cannot be applied to 'int','boolean'


Например lUser в двоичном представлении '10', а lAdmin '1000', находим позицию единичного бита, для lUser 2, для lAdmin 4, теперь проверяем lSupermanRights равное 10, а в двоичном представлении 1010, раз 2 и 4 биты равны 1, соответственно пользователь имеет права пользователя и администратора, вопрос, как грамотно это написать?
...
Рейтинг: 0 / 0
Работа с битовым сдвигом
    #39551724
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczAK1988,

так "битовым сдвигом" или "побитовым смещением"?

Почему не просто маской?
Код: java
1.
2.
3.
boolean isUserInRole(int rights, int role){
    return rights & role != 0;
}



Но, можно конечно смещать вправо и проверять на единицу, но тогда у нас строгий порядок ролей должен быть. Что не есть хорошо.

Код: java
1.
2.
3.
boolean isUserInRole(int rights, int role){
    return (rights & role) != 0;
}



Спасибо!)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с битовым сдвигом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]