IvanR 0 Denunciar post Postado Setembro 1, 2008 Este for: unsigned h=0,g; char* c; for(c=s; *c!='\0'; c++) { h=(h<<4)+*c; if(g==(h&0xf0000000)) { h^=(g>>24); h^=g; } } nas linhas for(c=s; *c!='\0'; c++) ; h=(h<<4)+*c; if(g==(h&0xf0000000)); h^=(g>>24) Alguém poderia me explicar oq é isso? << é um shift de memória ? Se for vai pra onde? e 0xf0000000 é o primeiro endereço da memoria ? e o h^? Oq faz isso ? Somar unsign h com um caracter ? Sinceramente, dessa parte ai num to sabendo muita coisa e obrigado a quem puder ajudar Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Setembro 1, 2008 Shift de memória servem p/ alinhar o endereço. Pra onde vai? Só olhar a atribuição do lado esquerdo... O primeiro endereço de memória é 0x00000000. ^é operador de XOR de C. Já tem erro no código porque não especifica o tipo de h nem de g,mas como é memória deve ser unsigned char. Qual o problema de se somar um char a um unsigned char? Teu teclado não emite números negativos, então está dentro do conjunto. O que querem fazer com as letras é problema de quem fez o código, já que não deve ser uma operação muito normal dar shift de 3 bytes. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 1, 2008 Deslocamento bit a bit. << deslocamento a esquerda. >> deslocamento a direita. Leia isso: http://forum.imasters.com.br/index.php?showtopic=278255 Compartilhar este post Link para o post Compartilhar em outros sites
Pedro Rezende 0 Denunciar post Postado Setembro 8, 2008 Qual a finalidade deste código? Abraços! Compartilhar este post Link para o post Compartilhar em outros sites