Ir para o conteúdo
J.D.S

Que signifiica "<<"???

Mensagens Recomendadas

J.D.S    0
J.D.S

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ricardo    0
Ricardo

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...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
vbmaster    5
vbmaster

<< 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!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ricardo    0
Ricardo

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!!

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade