EnzoFerber
(usa FreeBSD)
Enviado em 01/12/2011 - 08:10h
Cara, tem 8 anos que programo, e nunca usei esses operadores ( << e >>). Mas os outros, uso agente usa toda hora.
Por exemplo, rotinas de criptografia utilizam muito &, |, ^, ~ e !
AND, OR, XOR, PARITY e NOT.
Mas os 'deslocamentos à direita/esquerda' (esse é o nome do operador) podem ser usados para multiplicação e divisão de umas forma bem rápida.
1 deslocamento a esquerda divide o número por 2, e para a direita, multiplica por 2.
Deslocamento a direita: <<
Deslocamento a esquerda: >>
Já mostrei a rotina de transformar um número em binário usando o & (AND BITWISE), olha o código pra pegar uma string binária e transformar em número.
#include <stdio.h>
#define NUMBITS 8
int bindec( char *str)
{
register int i;
int dec = 0x0;
for ( i = 0; i < NUMBITS; i++ ) dec |= (str[i] == '1') ? 0x80 >> i : 0;
return dec;
}
int main ( void )
{
printf ( "%d\n", bindec("01000001"));
return 0;
}
Retorna 65. ;)
http://codepad.org/DGwPSb15
Os deslocamentos também podem ser úteis quando você está lendo entrada de hardware, ou coisas do tipo. Tem algumas utilidades, eu mesmo, num usei, só na função rotatebits()
Espero ter ajudado,
Enzo Ferber
[]'s