Olá povo. fiquei curioso com um trecho de código, porém não saquei mto a ideia.
Pelo que vi na web rola um deslocamento bit de uma lado para o outro - mas não entendi como isto funciona.
Ai ficou evidente que ele deslocou os zeros pra esquerda.
Só resta, a saber qual a aplicabilidade deste tipo de recurso, pq a surgiu a dúvida depois que vi os caras fazendo isto em um código e não ficou entendível, imagino que este recurso tenha um objetivo bem matemático, mas tem termos práticos não sei se é usado pelo povo.
rmendes08
Operações a nível de bits são uma otimização e tanto quando comparadas a operações sobre objetos, por exemplo. Um exemplo bem prático é a codificação de dados binários para Base64. Geralmente, algoritmos de criptografia e hashing também usam bastante operações no nível dos bits.
E
entanglement
Bom, é usado em criptografia - não é usado em contabilidade e controle de estoque
ricardospinoza
Entendi a idéia. obrigado pessoal
ViniGodoy
Operadores assim são muito usados em processamento de som e imagem.
Se quiser ver um uso interessante:
O código fonte está dentro da imagem do GUJ.
E
entanglement
Uma coisa que é implementada em algumas linguagens e acho mais simples de entender que os operadores de shift (<<, >>, >>>) e mask (&, |, ~) é o campo de bits.
struct{/* field 4 bits wide */unsignedfield1:4;/* * unnamed 3 bit field * unnamed fields allow for padding */unsigned:3;/* * one-bit field * can only be 0 or -1 in two's complement! */signedfield2:1;/* align next field on a storage unit */unsigned:0;unsignedfield3:6;}full_of_fields;
O compilador deve, nesse caso, usar os shifts e masks adequados para montar e desmontar os valores.
Em Ada há o “packed array of boolean” mas nesse caso você não consegue definir campos com mais de 1 bit.
ricardospinoza
Legal, mto show o exemplo. já deu pra ter uma idéia do potencial e aplicabilidade.
O dia que eu precisar fazer algo assim será algo mto emocionante!!!