elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Casting de arrays
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Casting de arrays  (Leído 1,427 veces)
4dr14n31t0r

Desconectado Desconectado

Mensajes: 85



Ver Perfil
Casting de arrays
« en: 20 Noviembre 2015, 00:09 am »

Código
  1. byte b = (byte)7 //no problem
  2. byte[] array = (byte[]) new int[7] //error de compilacion
Creo que el problema habla por si solo, pero por si no ha quedado claro la pregunta es:
¿Como puedo hacer un casting de arrays?

Edito: He puesto como ejemplo tipos primitivos pero busco una forma que tambien funcione con clases


« Última modificación: 20 Noviembre 2015, 10:34 am por 4dr14n31t0r » En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Casting de arrays
« Respuesta #1 en: 20 Noviembre 2015, 02:57 am »

No sé si se pueda hacer el cast de manera directa así como pretende hacer tu código, lo que si puedes hacer es convertir cada uno de los elementos del arreglo, por ejemplo:

Código
  1.  
  2. int[] ArregloInt =new byte[] {123, 12, 87};
  3. byte[] ArregloByte = new int[ArregloInt.length];
  4.  
  5. // converción de cada elemento
  6. for (int i = 0; i <ArregloByte.length; ArregloByte[i] = ArregloInt[i++] );
  7.  

Ten cuidado cuando conviertas int a byte porque un byte ocupa 8 bits mientras que un int puede ocupar más, si valor del int que quieras convertir no puede ser contenida en 8 bits entonces el int convertido a byte tendrá un valor digamos que "extraño" porque se puede tomar los bits más significativos o menos significativos dependiendo de la arquitectura de tu computadora.

en el ejemplo que te mostré no hay problema porque los valores 123,12 y 87 pueden ser almacenados en 8 bits, es decir, en 1 byte.


« Última modificación: 20 Noviembre 2015, 03:07 am por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Casting
Programación Visual Basic
TeKNo dUKe 0 1,216 Último mensaje 26 Junio 2008, 14:34 pm
por TeKNo dUKe
¿Fallo de casting?
Java
SKalextric 5 3,571 Último mensaje 16 Octubre 2008, 06:22 am
por sapito169
Duda con arrays dentro de arrays « 1 2 »
PHP
Servia 11 7,214 Último mensaje 10 Marzo 2011, 09:04 am
por Servia
Casting.xxx, el primer dominio porno en Internet
Noticias
wolfbcn 0 4,127 Último mensaje 5 Agosto 2011, 02:52 am
por wolfbcn
Problema con casting
Programación C/C++
Caster 7 2,986 Último mensaje 19 Junio 2013, 18:19 pm
por Caster
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines