class Program001
{
public static void main(String args[])
{
int num[] = new int[11];
int x,y,z;
y = 0;
z = 1;
for(x=1; x==11;x++)
{
num[x]= z ^ z;
}
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
System.out.println(num[3]);
System.out.println(num[4]);
System.out.println(num[5]);
System.out.println(num[6]);
System.out.println(num[7]);
System.out.println(num[8]);
System.out.println(num[9]);
}
}
Eu fiz este programa para imprimir na tela 10numeros e fazer o comando XOR e mostrar na tela o resultado.
Exemplo :
x = 1;
y = 0;
c = x XOR y;
System.out.println(x);
mas está dando tudo zero.
Alguem sabe onde eu errei?
Cara penso que você errou na seguinte linha:
num[x = z^z;
você iniciou z com um e em nenhum momento o valor de z é altearado, e mesmo que fosse alterado o operador xor retornaria zero, porque o ou exclusivo retorna falso (ou zero) quando os dois valores são iguais.
Pesquise sobre os operadores de comparação para obter maiores informações.
Blz
Tá dando tudo zero pq o seu for tá assim:
for(x=1; x==11;x++)
Ou seja, para i começando em 1, variando de 1 em e ENQUANTO ELE FOR 11. O for nunca é executado. E o array é inicializado com tudo zero…
Altere o código para
for(x=1; x < 11;x++)
Dessa forma vc vai colocar no array x o valor de z ^ z.
[]'carisio
Por cara n e que vc esta errando n entendi direito mas seguinte.
o OR operador segue a seguinte tabela.
expressão1 expressão2 expressão1 ^ expressão2
false false false
false true true
true false true
true true false
vc esta comparando int e não boolean então abstrai que e int então 1 ^ 1
e igual a falso! acho que deu para sacar
vc esta comparando dois numeros iguais então concerteza vai ser false então num[x] vai continuar o mesmo numero 0 que deful todos elemento int são criados com 0.
se vc quer imprimir 1 vc tem compara Z^Y que são numeros diferentes logo vai ser blz cara saca outro erro basico. Blz e for como o caro carisio falow
e presta atenção o primiiro que vc vai imprimir sempre vai ser zero por que ???
for(x=1; x<1;x++)
vc ta dizendo que seu indice vai começão na posição 1 certo blz…
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
aqui vc esta mandando imprimir a primeira posicção mas ela n foi inicializada logo ela vai ser deful ela vai ser 0 saca!!!
vc tem que começa com a posição 1 ou mundo o indice para 0 x=0.
System.out.println(num[1]);
System.out.println(num[2]);
.
.
.
.
enentendu qual quer duvida nos estamos aqui…
blz
No meu aplicativo eu gostaria de exibir os dez primeiros numeros de uma
array com o procedimento XOR…
Exemplo.
int x = 1
num[]= new int[10]
z = num[] ^ x;
imprimir o resultado dessa comparação.
só pode ter duas possibilidades 1 ou 0.
então eu gostaria que a array inteira fizesse este procedimento e imprimir na tela. Mas imprime tudi zero, e na minhas contas a tambem 1.
nao sei onde está errado…
Olha o código q vc vai ter q usar:
class XOR
{
public static void main(String[] a)
{
int[] x = new int[10];
for (int i = 0; i < 10; i++)
{
x[i] = i;
System.out.println(1 ^ x[i]);
}
}
}
A saída é:
1
0
3
2
5
4
7
6
9
8
Agora vamos analisar o pq dessa saida:
0 ^ 1 = 1 -> 0000 ^ 0001 = 0001 = 1
1 ^ 1 = 0 -> 0001 ^ 0001 = 0000 = 0
2 ^ 1 = 3 -> 0010 ^ 0001 = 0011 = 3
3 ^ 1 = 2 -> 0011 ^ 0001 = 0010 = 2
E por aí vai.
Tem certeza q vc sabe o q é ou exclusivo? Não tem q ser ou 0 ou 1 …
O seu programa tá imprimindo tudo zero pelo motivo que falei no post anterior, o seu for não tá executando pq a condição para ele continuar é == 11, e tinha que ser < 11.
[]'s
carisio
SCJP 1.4