Autor |
Mensaje |
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Reto De La Ultratumba
Hola amigos,
con este reto no tendréis un Orfèo que os pueda reconducir a la luz:
Usar solamente 3 byte para almacenar en memoria la representación del número100000.
...usaríais solamente un stream?
" Lasciate ogni speranza, o voi che entrate. "
(Dante Alighieri - La divina commedia)
última edición por vuott el Lunes, 22 Septiembre 2014, 23:50; editado 3 veces
|
#1 Lunes, 22 Septiembre 2014, 23:36 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Reto De La Ultratumba
Este reto me excede. Me rindo.
Vae Victis!
|
#2 Martes, 23 Septiembre 2014, 08:58 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Reto De La Ultratumba
Este reto me excede. Me rindo.
Vae Victis!
Nooooo !
Noli cedere, shordi !
última edición por vuott el Martes, 23 Septiembre 2014, 10:23; editado 2 veces
|
#3 Martes, 23 Septiembre 2014, 10:19 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Reto De La Ultratumba
Hola Vuott.
Yo (ya salió el yo) intentaría crear retos algo más sencillos para un nivel de conocimiento general.
Difícil, naturalmente, sobre todo por la variedad de conocimiento que tenemos cada usuario de Gambas.
Por ahora te centras en binario. No sé si el tema de binario es algo que vayamos a tratar a diario en Gambas.
Debemos conocer el binario, naturalmente, pero a la larga tendríamos que hacer algo muy concreto para
trabajar con el, en una aplicación de escritorio. La variedad es grande, desde luego.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#4 Martes, 23 Septiembre 2014, 10:34 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Reto De La Ultratumba
No sé si van por ahí los tiros, pero un número entero ocupa 4 bytes, por lo tanto descartado.
Entonces, hay que usar una cadena que no exceda de 3 caracteres que son 3 bytes... pero las cadenas en gambas tienen un carácter adicional de "final de cadena", por lo que la cadena final sería de nuevo 4 bytes.
La única forma de representar ese número con el mínimo de caracteres es con la notación científica: 1E5 - Tres bytes sin contar el final de cadena. El método para almacenarlo en memoria es trivial (si es que esta es la solución).
100000 = 1 * 105 = 1e5
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Martes, 23 Septiembre 2014, 21:44 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Reto De La Ultratumba
La única forma de representar ese número con el mínimo de caracteres es con la notación científica: 1E5 - Tres bytes sin contar el final de cadena. El método para almacenarlo en memoria es trivial (si es que esta es la solución).
100000 = 1 * 105 = 1e5
Hooola jguardon,
este reto espera una o mas respuestas.
Bueno, quien sabe si otros amigos propusieran otras soluciones posibles.
Saludos.
última edición por vuott el Martes, 23 Septiembre 2014, 22:59; editado 1 vez
|
#6 Martes, 23 Septiembre 2014, 22:58 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Reto De La Ultratumba
|
#7 Sabado, 27 Septiembre 2014, 11:17 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Reto De La Ultratumba
Hola
Imaginaba algo así, por supuesto, pero no identifico los dos últimos bytes. ¿Corresponden a valores ascii? No consigo identificar su significado.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Domingo, 28 Septiembre 2014, 21:13 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Reto De La Ultratumba
Para insertar la representación del numero 10000 en 3 byte, yo usé la su representación hexadecimal: 0186A0 dividida en los sus 3 byte componentes. Despues he asignado cada byte componente a un elemento del array de tipo Byte[ ].
Es decir:
bb[0] = &01
bb[1] = &86
bb[2] = &A0
Si yo queiro utilizar practicamente esta representación hexadecimal, dividida en 3 byte, reconstruyo el numero decimal 100000 por ejemplo en esta manera:
última edición por vuott el Lunes, 29 Septiembre 2014, 00:49; editado 1 vez
|
#9 Lunes, 29 Septiembre 2014, 00:48 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Reto De La Ultratumba
|
#10 Lunes, 29 Septiembre 2014, 09:55 |
|
|
|