Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
  • Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

Include Bit Functions

#Gromov

Мастер
Include содержит функции для манипулирования битами.​
PHP:
stock GetValueBit(value,bit){ 
    return (value >>> bit & 0x01); 
} 

stock SetValueBit(value,bit,power){ 
    new nv = 0; 
    power = (power & 0x01); 
    for(new i = 31; i >= 0; i--){ 
        if(i == bit){ 
            if(power){ 
                nv += floatround(floatpower(2, i)); 
            } 
        } else { 
            if(GetValueBit(value,i)){ 
                nv += floatround(floatpower(2, i)); 
            } 
        } 
    } 
    return nv; 
} 

stock InvertValue(value){ 
    new nv = 0; 
    for(new i = 31; i >= 0; i--){ 
        if(!GetValueBit(value,i)){ 
            nv += floatround(floatpower(2, i)); 
        } 
    } 
    return nv; 
} 

#define AND(%1,%2)                    (%1 && %2) 
#define OR(%1,%2)                    (%1 || %2) 
#define NOT(%1)                        (!%1) 
#define NOR(%1,%2)                    (!(%1 || %2)) 
#define NAND(%1,%2)                    (!(%1 && %2)) 
#define XOR(%1,%2)                    (!(%1 && %2) && (%1 || %2)) 
#define NXOR(%1,%2)                    ((%1 && %2) || !(%1 || %2))
Пример:

PHP:
new PlayerConfig[MAX_PLAYERS][32]; 

stock ExtractPlayerConfig(playerid,value){ 
    for(new i=31; i >= 0; i--){ 
        PlayerConfig[playerid][i] = GetValueBit(value,i); 
    } 
} 

stock PackPlayerConfig(playerid,&value){ 
    for(new i=31; i >= 0; i--){ 
        SetValueBit(value,i,PlayerConfig[playerid][i]); 
    } 
}
 
Последнее редактирование:
Сверху Снизу