Jump to content

Que signifiica "<<"???


J.D.S
 Share

Recommended Posts

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

Link to comment
Share on other 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...

Link to comment
Share on other 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!

Link to comment
Share on other 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!!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.