uma básica que eu não sabia :oops: :
Assumindo x como byte contendo 10110001, qual será o sinal de X após a operação x>>2?
:microwave:
uma básica que eu não sabia :oops: :
Assumindo x como byte contendo 10110001, qual será o sinal de X após a operação x>>2?
:microwave:
isso? 00101100
Nops … :shock:
o sinal de x será negativo
pois quando fazemos signed right shift o sinal se mantem, ou seja, os campos da esquerda são preenchidos com o ultimo bit, no caso 1 (que é negativo)
vc viu essa questão do game do javaranch?
será negativo ?
fica assim:
10101100 (negativo)
x >>> 2 fica:
00101100 (positivo)
for (int i=0; i < 32; i++)
x = x >> 1;
fica: 11111111 11111111 11111111 11111111
Lá mesmo … eu nem tinha me tocado na diferença entre >> (signed shift) e >>> (unsigned shift)
Acho que vou fazer esse joguinho todo dia, tem uns detalhes que nem da pra prestar atenção no dia a dia.
[]s
no começo eu fazia esses joguinhos todos os dias
até que se vc fazer muito chega uma hora que vc quase decora todas… ae nem vira, hehehe
o operador >> sempre retornara algo de mesmo sinal
Eu sei que a pergunta é bem básica, mas não estou acostumado a trabalhar com bits.
então:
como vc chegou a conclusao que este nº é negativo?
Um número binário é negativo se o seu primeiro bit for 1.
então:
5 == 00000101
e
-5 == 10000101
???
exatamente
se você fizer 5 >> 2 = 00000001
se você fizer -5 >> 2 = 00100001
nao,
-5 = 11111111111111111111111111111011
o primeiro bit é sempre o sinal, 0 = positivo … 1 = negativo
mas, em binario,
-1 = 1111 1111 1111 1111 1111 1111
pq??? pq esse numero + 1, faz tudo voltar a 0000 0000 0000 0000 0000 0000
logo o menor numero negativo de um inteiro eh:
1000 0000 0000 0000 0000 0000
beleza:
-5 = 11111011 --> se ele for 1
onde 0 vale 1 e 1 vale 0
logo,
5 = 00000101 --> aqui ele é 1 tb
caso contrario, ele é 0
seria isso?
pera ai!!! esta gerando alguma confusão aqui!!
p bit que define o sinal, é o bit da esquerda nao DA DIREITA !
1000 0000 0000 0000 0000 0001 = isso é um numero negativo
0000 0000 0000 0000 0000 0001 = mas isso é positivo[/b]
To procurando faz um tempo já algum topico sobre isso, mas acabei não achando a definição que eu queria.
Alguem sabe de algum post ou artigo que explique detalhadamente a utilização de >> e << ?
Até!