Sou iniciante preciso de ajuda em exercicios! podem me ajudar?

11 respostas
arthur_roots

Olá Bom dia… irmãos

Tenhu um otro exericicio meio complicado aki…

-Escreva uma pequena função em Java,isASCII, que receba um char c como entrada e retorne TRUE se e somente se C for um caractere ASCII,ou seja, se C for representável usando-se apenas os sete últimos bits significativos de c???

se alguem puder me ajudar…Agradeço!!!

11 Respostas

ViniGodoy

O que você já fez?

Essa é uma possível resposta, mas não a que seu professor deve estar esperando…

public static boolean isAscii(char ch) { int chInt = (int)ch; return (chInt & 0x7) == chInt; }

ViniGodoy

O que você tem que pensar é. Qual é o maior número que é possível representar com 7 bits? É o número binário 1111111. Que número é esse?
O char será um ascii válido se seu valor numérico for >=0 e <= a esse número.

arthur_roots

Mano …num vo nega ki num intendi nada…nadinha…
poderia me dar uma Luz…
sem kerer abusar jah abusando…rs

ASCII???

ViniGodoy

Existe uma tabela que define que número o computador entende como que letra, chamada tabela ascii:
http://www.asciitable.com/

Ela é uma tabela de 7 bits, ou seja, mapeia apenas um conjunto pequeno de caracteres. Linguagens mais modernas usam uma tabela diferente, chamada Unicode, de 16 bits. Com certeza seu professor já te explicou isso, ou assumiu que alguém já tenha te explicado.

Enfim, o Java trabalha com essa tabela, de 16 bits. Acontece, que os primeiros caracteres dessa tabela são exatamente iguais aos caracteres da tabela ascii. E seu professor quer que você faça uma função que, dado um caracter qualquer de 16 bits, diga se ele é ou não um desses caras.

arthur_roots

Tudo bem irmão
intendi e lembrei da tabela…
mais então o exercicio ker o que afinal
poderia me explicar…

num tenhu professor mano…
eu arrumei um trampo de estagiario e to metendo a cara nos livros…
Eu conheço bem o delphi sabe…masi faz masi de 2 anos ki tava parado…

mais to aki agora com fé em DEUS ki ele vai me ajudar!!!

ViniGodoy

Então, ele quer uma função que diga se um caracter está na tabela ascii ou não.

arthur_roots

Entendeu então vou ter ki fazer um IF…com uma variavel e compara-la a tabela…e dar a resposta isso…mais ou menos assim o algoritmo?

arthur_roots

vc tem um msn ai ki eu posso cunversa cum tigo…SYpe alguam coisa?ow vc prefere continaur aki essa aula rsrsrsrsrsrs

ViniGodoy

Isso mesmo. Agora, pense um pouco nos valores máximo e mínimo da tabela. E você vai ver que o if, na verdade, é bem simples.

E eu prefiro continuar por aqui, assim outras pessoas podem ver a discussão.

arthur_roots

Beleza…pra mim tanto faz!!!
agradecido…!!

public static boolean isAscii(char ch) { int chInt = (int)ch; return (chInt & 0x7) == chInt; }

e o seu exemplo…num tem if?

ViniGodoy

Ok, vou a segunda resposta. O maior número em 7 bits é 127. (Pegue a calculadora do Windows, ponha em científica, escolha "Bin" (de binário), ponha 7 números 1, volte para decimal, vai ver que o número decimal é 127).

Portanto, estará na tabela ascii qualquer caracter cujo valor seja um número entre 0 e 127. Logo:

public static boolean isAscii(char ch) { int chInt = (int)ch; return chInt >= 0 && chInt <= 127; }

Nem precisa de if. Se fosse fazer seria um if assim:

public static boolean isAscii(char ch) { int chInt = (int)ch; if (chInt >= 0 && chInt <= 127) { return true; } else { return false; } }

O que é uma maneira idiota de escrever o código acima.

Criado 23 de fevereiro de 2010
Ultima resposta 23 de fev. de 2010
Respostas 11
Participantes 2