SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Truques com operadores especiais

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031971
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Truques com operadores especiais Empty [Tutorial] Truques com operadores especiais

    Mensagem por Weslley_Script Sex 12 maio 2023 - 11:38

    Esses truques são para deixar seus cуdigos mais velozes, mais bonitos e atй em alguns casos lhe poupar tempo. São truques básicos, que podem ser usados ​​em praticamente qualquer linguagem. Desde PHP até C++/C/Pawn


    [Tutorial] Truques com operadores especiais Mrgreen



    Operador NOT
    normal:
    Código do peão:

    Código:
    se ( ! var )


    método Bruno:
    Código do peão:

    Código:
    if ( 1  ^  ( var & var ) )







    administrador || item != 5

    Método comum:
    Código do peão:

    Código:
    if ( admin || item !=  5 ) )


    método Will:
    Código do peão:

    Código:
    if  (  (  ( admin &  1 ) | (  ( admin ^  7 )  &  ( item ^  5 )  )  )  )


    Método Dartakous
    Código do peão:

    Código:
    if (  ( admin &  1 ) | ( i ^  5 )  )


    Método Bruno. Sem |
    Código do peão:

    Código:
    if ( ( ! ( ( item ^  5 ) )  ^  ! ( ! ( ( item ^  5 ) )  &  ! ( ( admin ^  1 ) ) ) ) )



    Método Bruno. Sem!
    Código do peão:

    Código:
    if ( ( 1 ^ ( ( item ^ 5 ) & ( item ^ 5 ) ) ) ^ ( 1 ^ ( ( ( 1 ^ ( ( item ^ 5 ) & ( item ^ 5 ) ) ) & ( 1 ^ ( ( admin _ ^ 1 ) & ( admin ^ 1 )                ) ) )  &  ( ( 1 ^ ( ( item ^  5 )  &  ( item ^  5 ) ) )  &  ( 1 ^ ( ( admin ^  1 )  &  ( admin ^  1 ) ) ) ) ) ) ) )


    Método Bruno. Sem |
    Código do peão:

    Código:
    if ( ~ ( ~ ( item ^  5 )  & ~ admin ) )



    Método Will. Sem |
    Código do peão:

    Código:
    if  ( ( admin )  ^  ( ( admin ^ 0b11111111111 )  &  ( item ^  5 ) ) )



    valor absoluto
    Código do peão:

    Código:
    novo x =  -111 ; _
    x =  floatabs ( x ) ;


    pára

    Código do peão:

    Código:
    novo x =  -111 ; _





       

    Código:
    x =  ( x & 0x80000000 )  ? ~x + 1  : x;








    a >= b
    Código PHP:

    Código:
    if( ((b-a) & 0x80000000) | !(a ^ b)) 

    você
    Código PHP:

    Código:
     if(!(((a-((a-b)&(a-b)>>31))^a)) | !(a ^ b)) 





    a <= b
    Código PHP:

    Código:
    if( ((a-b) & 0x80000000) | !(a ^ b)) 

    você
    Código PHP:

    Código:
     if(!!(((a-((a-b)&(a-b)>>31))^a)) | !(a ^ b)) 





    checar negatividade
    Código PHP:

    Código:
    if( a < 0) 

    você
    Código PHP:

    Código:
    if( (a & 0x80000000) ) // fasthest 





    checar positividade
    Código PHP:

    Código:
    if( a > 0) 

    você
    Código PHP:

    Código:
    if( !(a & 0x80000000) ) //fasthest 







    a > b
    Código PHP:

    Código:
    if(a > b) 

    poderia ser feito
    Código PHP:

    Código:
     if(!(((a-((a-b)&(a-b)>>31))^a))) 

    você
    Código PHP:

    Código:
    if( (b-a) & 0x80000000)//fasthest 




    a < b && a != 0
    Código PHP:

    Código:
     if( (!!(((a-((a-b)&(a-b)>>31))^a))) & (a ^ 0)) 

    Código PHP:

    Código:
    if( ((a-b) & 0x80000000) & (a ^ 0))// fastheat 




    obter valor mínimo
    Código do peão:

    Código:
    se ( a >= b )  {
        maxs   = b;
    }
    else  
    {
       maxs = a;
    }


    você
    Código do peão:

    Código:
    maxs =  min ( a,b ) ;


    você
    Código do peão:

    Código:
    maxs = y ^  ( ( x ^ y )  &  - ( ! ( ( y - x )  & 0x80000000 ) ) ) ;




    obter valor máximo
    Código do peão:

    Código:
    se ( a >= b )  {
        maxs   = a;
    }
    else  
    {
       maxs = b;
    }


    você
    Código do peão:

    Código:
    maxs =  max ( a,b ) ;


    você
    Código do peão:
    maxs =  ( ( ( a - ( ( a - b ) & ( a - b ) >> 31 ) ) ) ) ;


    você
    Código do peão:

    Código:
    maxs = x ^  ( ( x ^ y )  &  - (  ( ! ( ( y - x )  & 0x80000000 )  ) ) //  mais rápido








    a > b && a != 0
    Código PHP:

    Código:
     if( (!(((a-((a-b)&(a-b)>>31))^a))) & (a ^ 0)) 

    você

    Código PHP:

    Código:
    if( ((b-a) & 0x80000000) & (a ^ 0)) 






    a < b && a == 0
    Código PHP:

    Código:
     if( (!(((a-((a-b)&(a-b)>>31))^a))) & !(a ^ 0)) 

    você
    Código PHP:

    Código:
    if( ((a-b) & 0x80000000) & !(a ^ 0)) 




    a > b && a == 0
    Código PHP:

    Código:
     if( (!!(((a-((a-b)&(a-b)>>31))^a))) & !(a ^ 0)) 





    a < b
    Código PHP:

    Código:
    if(a < b) 

    poderia ser feito
    Código PHP:

    Código:
     if(!!(((a-((a-b)&(a-b)>>31))^a))) 

    você
    Código do peão:

    Código:
    se ( ( ( a - b )  & 0x80000000 ) )








    Igualdade com XOR
    Código do peão:

    Código:
    se ( vara ==  1 )


    pára
    Código do peão:

    Código:
    se (  ! ( vara ^ 1 ) )









    Igualdade com AND
    Código do peão:

    Código:
    if ( vara ==  1  && varb ==  2 )


    com operadores:
    Código do peão:

    Código:
    if (  ! ( vara ^  1 )  &  ! ( varb ^  2 )  )







    Igualdade com OU
    Código do peão:

    Código:
    if ( vara ==  1 || varb ==  2 )


    com operadores:
    Código do peão:

    Código:
    if (  ! ( vara ^  1 ) | ! ( varb ^  2 )  )







    Verifique se um é MAIS e outro MENOS

    Como verificar se os valores têm sinais opostos?

    Bem, você normalmente faria:
    Código do peão:

    Código:
    nova var1 =  -  10 ;
    nova var2 =  +  10 ;

    if ( var1 >  0  && var2 <  0 || var1 <  0  && var2 >  0 )


    Mas é ruim, muitas comparações, operações. Simplesmente faзa:
    Código do peão:

    Código:
    se ( var1 ^ var2 <  0 )








    Diferença

    É possível checar a diferença de dois valores sem usar !=
    Código do peão:

    Código:
    se ( var1 != var2 )


    usar:
    Código do peão:

    Código:
    se ( var1 ^ var2 )







    Diferente de -1

    Para checar se um número é diferente de menos um normalmente feito:
    Código do peão:

    Código:
    se ( -1 ! =  var )


    pois com bitwise, podemos fazer:
    Código do peão:

    Código:
    se ( ~var )


    boa, né?






    Igual a um valor, ou igual a outro acrescido

    Para checar se um valor é igual a outro valor ou este valor é igual a outro valor acrescido de mais um valor, normalmente feitas:
    Código do peão:

    Código:
    if ( var1 == var2 || var1 == var2 +  30 )


    basta fazer
    Código do peão:

    Código:
    if (  ! ( ( 30  ^  ( var1 ^ var2 ) )  &  ( var1 ^ var2 ) )  )


    Difícil, né?






    Elevar o 2 na potência

    Para elevar a potência 2 ax normalmente usada
    Código do peão:
    Código:
    [size=14]
    [size=13]printf ( " % f" , floatpower ( 2,10 ) ) ; // 2 elevado a 10[/size][/size]


    [center][/center]

    com outros operadores, podemos fazer:
    Código do peão:

    Código:
    printf ( "%d" , 1  <<  10 ) ;


    mais rápido, mais fácil, mais bonito.






    Multiplicação

    Para multiplicar um valor por 4, basta fazer:
    Código do peão:

    Código:
    printf ( "%d" , 5  <<  2 ) ; // 5 * 4 = 20
    printf ( "%d" , 6  <<  2 ) ; // 6 * 4 = 24



    e assim vai, dá pra multiplicar por * 4,8,16,32 .. bastando usar a sequência << 2,3,4,5 ..






    Divisão

    Assim como na divisão, basta usar o inverso >>
    Código do peão:

    Código:
    printf ( "%d" , 6  >>  1 ) ; // 6/2


    E assim vai indo, sempre vai dividir na base 12, portanto nъmeros impares nгo serгo divididos






    Pares

    Muita gente conhece o operador %, mas há outro modo de pegar nъmeros pares ou impares

    Normalmente, uma pessoa faria:
    Código do peão:

    Código:
    se ( 16  %  2  ==  0 )


    para checar se um número é par. Mas há outro modo melhor:

    Código do peão:

    Código:
    se ( ! ( 16  &  1 ) )







    Impares

    Normalmente, uma pessoa faria:
    Código do peão:

    Código:
    se ( 17  %  2  !=  0 )


    para checar se um número é impar. Mas há outro modo melhor:

    Código do peão:

    Código:
    se ( ( 16  e  1 ) )


    simples, não?






    Valores nulos


    Há vários métodos para comparar valores nulos, o mais comum :copyright: o pessoal fazer:
    Código do peão:

    Código:
    if ( var1 ==  0  && var2 ==  0  && var3 ==  0 )


    que tal economizar tempo, velocidade e acrescentar um pouquinho de beleza ao seu cуdigo fazendo:
    Código do peão:

    Código:
    if ( var1 | var2 | var3 ==  0 )







    Trocar sinal

    Há vários modos, um deles é este:
    Código PHP:

    Código:
    printf("%d", (~var + 1) ); 

    você
    Código PHP:

    Código:
    printf("%d", (var ^ -1) + 1 ); 




    Troca de valores

    Uma pessoa normal faria:
    Código do peão:

    Código:
    novo a =  1 ;
    novo b =  2 ;




    Código:
    novo t = b;

    b = a;
    a = t;


    com XOR, eu faria:
    Código do peão:

    Código:
    a ^ = b;
    b ^= a;
    a ^ = b;







    Pegar ъltimo nъmero

    Essa dica nгo deve ser ъtil, mas й interessante

    Vocк sabe como pegar o dнgito nъmero de um nъmero?

    164898848 4 ? Basta usar % 8

    Logo:
    Código do peão:

    Código:
    printf ( "%d" , 1648988484  %  8 ) ;


    vai retornar: 4

    Código do peão:

    Código:
    printf ( "%d" , 16489884818  %  8 ) ;


    vai retornar: 8






    Toogle valores

    JÁ viram aquele: Caso esteja UM, mude para ZERO. Estive Casor ZERO. Mudar para UM.

    Como você faria? Provàvelmente
    Código do peão:

    Código:
    if ( var ==  1 ) var =  0 ;
    senão var =  1 ;


    ou talvez você seja inteligente e usa operadores temporários?
    Código do peão:

    Código:
    var = var ==  1  ?  0  :  1 ;


    ?

    Nada disto, apenas use:
    Código do peão:

    Código:
    var =  ! var;


    simples, né?
    Creditos: IPS Bruno



    [Tutorial] Truques com operadores especiais D07Xwqb
    [Tutorial] Truques com operadores especiais Yjab9HN

      Data/hora atual: Qua 1 maio 2024 - 21:23