[RESOLVIDO] operaçao bit a bit em c

unsigned long a=585;

alguem ai sabe qual é o tipo e valor de retorno dessa operação da linguagem c:.

a<<8.

Olhe para os bits. Um long tem 32 bits.

Logo, esse número será representado assim, por 4 bytes:
00000000 00000000 00000100 1001001

Agora vc “afasta” 8 bits para esquerda, o que dá o número:
00000000 00000100 1001001 00000000

E isso em decimal é: 149760

Quando fizer operações de bits, não fique olhando no valor decimal dos números. Eles geralmente tem pouco significado. Pense no valor daquele número em binário.

muito obrigado.

e se em vez do valor 585. podesse ser outros valores.

só que desta vez fosse armazenado numa variavel long e em java.

acho que a mesma operaçao bi a bit nao faria diferença. ou faria. porque long em java tem 64 bits.

Não faria. Zeros a esquerda do número não tem qualquer valor.

Faria diferença se a variável fosse menor, um short. Nesse caso, os bits que “caíssem fora” seriam descartados.

isso me ajudou muito.
obrigado.