No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

1D
22H
16M
28S
Curso de Introducción a Java SE

Curso de Introducción a Java SE

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Casteo entre tipos de datos

19/39
Recursos

Java nos ayuda a realizar casteo automático de los tipos de datos más chicos a otros más grandes.

Sin embargo, en algunos casos vamos a necesitar realizar un cast manualmente, así como aprendimos en la clase anterior ((dataType) variableOperación).

Por ejemplo: supongamos que declaramos dos variables a y b de tipo int y una variable c de tipo double que es igual a la división de las primeras dos variables.

En este caso, aunque definimos que el tipo de dato de c es double, Java automáticamente convertirá el resultado de la división a tipo int, ya que este es el tipo de datos de las dos variables que dividimos, pero seguirá respetando que la variable c es de tipo double y añadirá un decimal al final (.0).

Esto significa que muchas de nuestras operaciones pueden verse afectadas. Por ejemplo:

int a = 30;
int b = 12;

double c = a / b;
System.out.println(c); // 2.0 (??)

En este caso, ya que Java convierte nuestras variables automáticamente, debemos indicarle a nuestra variable c (de tipo double) que debe hacer cast de su valor para que Java no altere los valores de las variables y el resultado de la operación sea correcto:

int a = 30;
int b = 12;

double c = (double) a / b;
System.out.println(c); // 2.5

Es decir, como a y b son de tipo int, el resultado de una operación entre ambas variables será de tipo int, por lo que no tendrá decimales, pero si guardamos el resultado de esta división en una variable de tipo double añadiremos un .0.

Esto podemos solucionarlo si indicamos que además de que la variable c es de tipo double, el valor de esta variable también debe ser de tipo double. Esto significa que Java ejecutará la división entre a y b como si fueran de tipo double, por lo que tendrán decimales a pesar de haber sido definidas inicialmente como números enteros.

Aportes 264

Preguntas 16

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

EL 49 equivale a 1 en la tabla ASCII .

Apuntes que hago en bloc de notas.

Cast entre variables

.::Conversión Automatica::.
byte -> short
short -> int
char -> int
int -> long
long -> float
float -> double

.::Cast Necesario::.
double -> float
float -> long
long -> int
int -> short
short -> byte

char <-> byte
char <-> short
int -> char

49 es la posición del 1 en el código ASCII;

Conversión Automática e Conversión Necesaria
.

49 es el código Ascii del “1”

Para el caso especial de convertir un String a cualquier otro tipo de dato, Java dispone del método parse con sintaxis:
Tipo.parseTipo(cadena)
Por ejemplo

String edad = "18"
int edadN = Integer.parseInt(edad);

Para el problema inverso, tenemos los métodos toString() y valueOf() con sintaxis:
String nombre = Tipo.toString(numero) Y
String nombreC = String.valuesOf(nombreN) respectivamente, veamos ejemplos:

int a = 15;
String edad1 = Integer.toString(a);
String edad2 = String.valueOf(a);

Cada uno de los símbolos de nuestra computadora tienen una referencia numérica, la cual se traduce de su valor en bytes, que se ocupa como trabajo en memoria y procesamiento.
Este tipo de valores suelen agruparse para poder utilizar y conectar cosas como nuestro teclado y pudan ser leídos por nuestra pc.

Existe una tabla completa con esos valores, traducidos a comandos de teclado (Código ASCII), mediante la tecla** “alt” **(de Alternativa), la cual permite realizar con dichos comandos, cada uno de los valores o símbolos, los cuales imprimimos en nuestras pantallas.

Me imagino que 1 a 49 es la suma de los 16 bits del char y los 32 bits del int + 1 = 49 xd

49 es la còdigo numérico del carácter “1”

Un detalle interesante. ¿Por qué Java no castea automáticamente de char a short si ambos tipos de datos ocupan 2 bytes en memoria? Si son del mismo tamaño, por qué no puede castearse automáticamente de char a short? ¿Por qué se dice que short es más pequeño que char si ambos ocupan dos bytes?

Sencillamente porque short utiliza los dos bytes para representar números positivos y negativos (desde -32.768 hasta +32.767 ambos incluidos). Y char utiliza los dos bytes para representar números únicamente positivos (desde 0 hasta 65.535) aunque luego se interpretan como caracteres.

Por eso, la conversión de char a short no es automática.

Si estás leyendo este comentario, espero verte en el curso de Java orientado a objetos!!

🤔 El casteo implícito también es conocido como conversión automática.

public static void main(String[] args) {
// Exactitud
int a = 30;
int b = 12;
System.out.println("EL NUMERO EXACTO DE PERRTIOS AL MES ES: "+((double) (a/b)));

    double c = (double) a/b;
    System.out.println(c);

    // CASTING DE CHAR IMPLICITO
    char n = '1';
    int nI = n;
    System.out.println("CASTING DE CHAR IMPLICITO: "+ nI);

    // CASTING DE CHAR EXPLICITO
    char n2 = '1';
    short ns = (short) n2;
    System.out.println("CASTING DE CHAR EXPLICITO: "+ ns);
}

Para los que hasta ahora están aprendiendo: Solo déjense llevar. Tomen sus apuntes y sigan con el curso. No se estresen por los datos que no tienen respuesta en el vídeo como el significado del número 49. Lo digo porque yo soy de los que se estresan cuando no sabe ni por dónde buscar. La vida me ha enseñado que no tengo que aprenderlo todo de una sola tajada. Poco a poco. Besos.

Buenas noches.
El numero 49, corresponde al codigo en ASCII del numero 1.
Fuente: https://elcodigoascii.com.ar/

Para entender el por qué del 49, es tan fácil como poner “Alt + 49”.
1

En código ASCII el 1 se representa como 49

ESE 49 SALE DEBIDO A QUE EN LA TABLA ASCII 1 OCUPA LA POSICION 49

Ésta es la tabla del código ascii. Sdls!

Es el código ASCII 49 = 1.

No tengo idea a que es el numero 49 pero leyendo los comentarios ya lo se

  • flechas azules (conversión automática).
  • flechas blancas (requiere un cast)
  • Lo que vemos en la pantalla es la tabla de conversión entre tipos de datos que podemos tener, estos son la mayoría de los tipos de datos, no son todos… Tenemos byte, short, int, long, float, bouble y char.
  • Si notamos están desde el tamaño más chiquito que es el tipo byte hasta uno de los más grandes que es long.
  • Hay unas flechas claves:
  1. En el flujo de las flechas azules una conversión automática, más o menos una variable chiva siempre va a poder caber en una variable grande. En este caso la conversión automática significa que no es necesario que coloquemos un cast, no es necesario que lo coloquemos explícitamente con los paréntesis y el tipo de datos, porque la conversión ocurre automáticamente como el tipo de dato cabe fácilmente, pues no pasa nada.
  2. En las flechas blancas si se requiere un cast y aquí podemos notar que pues son normalmente los tipos de datos que son mucho más grandes que no pueden caber en un tipo de dato más pequeño, lo que sucede en el 100% de los casos lo que va a suceder es un truncamiento de los dígitos que no pueden caber en el tamaño de la variable más pequeña donde estamos intentado meterla

El caracter 1 equivale a 49 en la tabla ASCII

Ademas del casteo tambien existe la coreción que es cuando se realiza una operación matemática entre variables de diferentes tipos

Un byte se podrìa definir como un octeto de informaciòn, esta compuesto por un conjunto ordenado de 8 bits.​​ El tipo de dato byte en JAVA puede tomar un valor entre el rango mínimo de -128 y el máximo 127 (inclusive).

Exacto

El numero 49 equivale a 1 en la tabla ASCII .

49 = 1 en la tabla ASCII : código de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno. Fue creado en 1963 por el Comité Estadounidense de Estándares como una evolución de los conjuntos de códigos utilizados entonces en telegrafía.

Como adición al contenido visto, el casteo implícito es conocido como conversión implícita y el casteo explícito es conocido también como conversión explicita o conversión de tipos.

Es el códgo ASCII del número 1

Es código ASCII, aqui dejo un link de una pagina con todas las equivalencias
https://elcodigoascii.com.ar/

Jugando con ASCII:

int arroba = 64;
char aa = (char)arroba;
System.out.println(aa);```

Código ASCII?

Se ejecuta un CAST cuando el tipo de dato es mayor al que se convertirá

1 es 49 en ASCII

Si no me equivoco, equivale al código ASCII.

*Para redondear el valor.
Math.round(2.6); //3

*Para elegir la cantidad de decimales.
import java.text.DecimalFormat;
DecimalFormat nameVar = new DecimalFormat("#.##");
nameVar.format(2.33333333) // 2.33

codigo ASCLL el 1

‘1’ en Código Ascii es 49

es el valor del carácter en código ASCII

Según sus siglas en ingles se refiere a American Standard Code for Information Interchange ==> ASCII

codigo Ascii correspondiente al caracter ‘1’

Interesante el tema del cast

El número 49 corresponde al código ASCII del caracter “1”.

Código ASCII

El 49 es el código ASCII del carácter 1 Eso del código ASCII lo aprendí en el curso de Fundamentos de Ingeniería de software. Super recomendado

Java nos ayuda a realizar casteo automático de los tipos de datos más chicos a otros más grandes.

Los tipos short y char ocupan el mismo espacio, 2 byes. No hay cast automático porque al ser short signed y char unsigned, los valores que representa char no son un subconjunto de los valores que puede representar short.

El resultado del cast implícito del char a int no me lo esperaba

El 49 corresponde al valor ASCII del caracter ‘1’

El código decimal de 1 en la tabla de ASCII es 49

lo que me gusta mucho del curso es la limpieza del codigo

El numero 49 corresponde al codigo ASCII del numero 1

El 1 en la tabla ASCII tiene el valor de 49

El 49, es equivalente del 1, en formato ASCII

El 1 se encuentra en la posición número 49 de la tabla ASCII.

Y este sería mi código de la clase (Netbeans):

se llama coercion implícita o explicita la forma como el mismo lenguaje nos ayuda.

Esta es la razón de se 49

El 49 es la posicion que tiene n

A su posición en el código ASCII

Corresponde al numero 1 en la tabla ASCII

El 1 en la tabla ASCII ocupa el valor 49.

la verdad nose jajaja , pero creo que a algo de algun comando

        var n = '1';
        var nI = (int) n;
        var n2 = '2';
        var nI2 = (int) n2;
        System.out.println(nI);
        System.out.println(nI2);

es lo mismo que usar alt + 49 y alt + 50

Ya no mea cordaba lo de ASCII

Olvidaba que fuera referente al codigo ASCII, y probando con otros caracteres, si muestra el numero correspondiente a ese codigo ASCII.
Lo del casteo ahora si me quedo mas claro para poder emplearlo en un futuro.

49 es el 1 en ASCII

EL CODIGO ASCII DEL 1

Es el equivalente del código ASCII

#2
//(1)-char c = ‘z’; conviertelo a int
char c=‘z’;
int c1=c; // implicito

    //-(2)-int i = 250; conviertelo a long y luego de long a short
    int i = 250;
    long i2=i; // implicito
    short i3=(short) i2; //explicito

    //(3)-double d = 301.067; conviertelo a long
    double d = 301.067;
    long d2=(long)d;// explicito

    //-(4)-int i = 100; súmale 5000.66 y conviertelo a float
    int a = 100;
   float suma= a+5000.66f;//implicito - exactitud

    //-(5)-int i = 737; multiplícalo por 100 y conviertelo a byte
    int b = 737;
    byte b2=(byte)(b*100);//explicito - estimacion

    //(6)-double d = 298.638; divídelo entre 25 y conviertelo a long 
    double d1= 298.638;
    long dividir=(long)d1/25;//explicito

El número 49 es la referencia del numero 1 en codigo ASCII.

He aquí mi aporte. Decidí involucrar el Parseo, ya que mi curiosidad (así como la suya, estoy seguro) me hizo preguntarme qué pasa, entonces, con los Strings.

 //Sin casteo
   char n = '1';
   int nI = n;
   System.out.println("El resultado es: " + nI);
   
   //Con casteo
   short nS = (short) n;
        System.out.println("El resultado es: " + nS);

   //Con Parseo (Para cambiar valores de String a numéricos o booleanos)
   String age = "25";
   int ageInt = Integer.parseInt(age);
   System.out.println("El resultado es: " + ageInt);

49 es el Numero ascii de ‘1’

El 49 es el código ascii del 1

Cuándo nos muestra esto números se refiere al código ASCII.

He descubierto que JAVA no era tan dificil más bien me enseñaron mal.

El 49 es por el ASCII 110001 que es lo que entiende el procesador

Que horrible es Java :S

En la conversión automática no es necesaria usar cast. Ocurre cuando se pasa de un tipo de dato menor a uno mayor. Cuando ocurre al revés si es obligatorio usar un cast.

El 49 es igual al 1 en la tabla de ASCII
nos podemos dar cuenta de esto utilizando el teclado numerico de la siguiente manera (Alt + 49).
♥ para hacer el corazon es (Alt + 3).
😄

codigo ascii del numero 1

El 49 es equivalente al numero 1 en la tabla ASCII

49 = 1

equivale a la tabla ASCII QUE UNO (1) en forma de caracter equivale a 49.

Imprime 49 porque ese es el código ASCII correspondiente al caracter ‘1’

Siempre tengan en cuenta eso, una variable chica puede caber en una variable grande, pero una grande requiere un cast para entrar en una chica.

  • Lo recomendable es usar siempre un cast a menos que los decimales no te importen.

49 es el código ASCII del caracter 1

El 49 equivale a 1 en la tabla ASCII

<alt + 49 = 1> 

El ejercicio 1 el resultad49 por ASCI es equivalente al numero 1

El 45 que muestra es la posicion en memoria del numero 1.

El 49 en el ejercicio es por ASCII

Hay un dato curioso cuando en la forma que se interpreta el casteo:

![](

El 49 se debe a que es el equivalente a 1 en la tabla ASCII

Que disfruten sus E (ascii). 😃