Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] mi duda

Estas en el tema de mi duda en el foro de Java en Foros del Web. si FileInputStream.read() devuelve un byte, no tendria q devolver 8 bits envez del numero en la tabla ascii que esta el caracter?...
  #1 (permalink)  
Antiguo 07/10/2013, 11:22
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Pregunta mi duda

si FileInputStream.read() devuelve un byte, no tendria q devolver 8 bits envez del numero en la tabla ascii que esta el caracter?
  #2 (permalink)  
Antiguo 07/10/2013, 12:12
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: mi duda

¿Te has parado a pensar que un byte es la representación de un número entre 0 y 255?

¿Crees que sería más cómodo trabajar con la secuencia de 10001000 que con 136?

Un byte es un número, que 136 tenga su equivalente en ASCII ê no es más que una "coincidencia", de hecho en java no utilizas ASCII, usas UTF-16.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 07/10/2013, 12:21
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: mi duda

como que no usa ascii si cuando pongo print((char)41) me muestra ")" que equivale con la tabla de ascii?
  #4 (permalink)  
Antiguo 08/10/2013, 01:11
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: mi duda

Imprime el caracter 340, después vete a una tabla de ASCII y busca el caracter 340,
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 08/10/2013, 03:42
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba
Mensajes: 119
Antigüedad: 13 años, 5 meses
Puntos: 8
Respuesta: mi duda

Debes pasarlo a bits, tienes una función eso.
  #6 (permalink)  
Antiguo 09/10/2013, 07:05
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: mi duda

Hola:

Internamente un byte son 8 bits. Lo que cambia es la forma en que se pintan esos bits según dónde se haga.

Si lo metes en un entero (que es lo que hace read()), te devuelve esos 8 bits que dentro de un entero, es un número entero (10001000 es 136). En ambos casos, en memoria, tienes los bits, la diferencia es cómo se interpretan.

Si escribes en pantalla con print((char)136) estás imprimiendo el char (has puesto (char) para hacer la conversión) cuya representación interna en memoria son esos mismos 8 bits.

Resumiendo, los 8 bits en memoria son siempre los mismos, cambia la forma en que se dibujan o se interpretan según qué tipo de variable o conversión hagas.

Se bueno
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 09/10/2013, 10:16
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: mi duda

muchas gracias chu

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:03.