• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

J.D.S

Que signifiica "<<"???

6 mensagens neste tópico

Oi ppl!! Sou novo aqui no forum, e estou a aprender a programar em C... Há pouco tava a ler um codigo fonte e deparei-me com esta condição:

(n == (1 << 0))

Alguem me pode explicar o significado das "<<"??

Abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso refere-se ao operador 'Shift Left', ou seja corresponde a um deslocamento binário do valor.

Por exemplo:

se tens:

x = 4 = 0000 0100

e fazes "<< 2" no x, ficas com:

x = 16 = 0001 0000

ou seja deslocaste 2 bits no valor de x.

Em C existem mais operadores do mesmo tipo (operadores ao bit), o '&', o '|', '>>', etc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<< tanto pode ser um operador insersor como pode ser um 'left shift'.

Neste caso parece-me estar em função de left shit, e se não tou com uma grande moka, penso que tem a ver com elevar ao quadrado esse número ou que é....é assim qualquer coisa parecida.

Isto em c++, em c não deve se rmuito diferente.

Alguém que explique melhor please!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No fundo era mais ou menos o que estava a dizer, elevar ao quadrado o número se o left shift for de 2.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim o vbmaster tem razão, a operação 'shift left N' (<< N) equivale a multiplicar o numero por 2^N.

No caso base temos 2^0 = 1, o que faz com que fazer '<<0' seja o mesmo que multiplicar um numero por 1.

Abraços!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora