¿Cómo puedo convertir de int a float (devuelve como unsigned, pero interpretado como un flotador)? Yo no puedo usar cualquier lenguaje de alto nivel de las construcciones como los sindicatos, solo bit a bit ops, la lógica de control (si/tiempo), + y -, etc.
- Es esta una tarea? ¿Qué has intentado hasta ahora?
- ¿Cómo es construido «float» valor a acceder?
- Google el IEEE de punto flotante formato estándar, y averiguar cómo juguetear con los bits para establecer su entero en la «fracción» y el valor apropiado en el «exponente».
- A pesar de los poderes fácticos en el meta son desaprobación de la «tarea» de la etiqueta.
- Esto es (al menos) la cuarta pregunta en las últimas 48 horas en este tema general. Creo que los otros han float a int y este es de tipo int a float, pero la semejanza de familia es notable. ASÍ que 12342926; ASÍ que 12336675; ASÍ que 12336314.
- Todos los que pude encontrar fue este hilo, en el que Jeff defiende esta particular de la etiqueta meta. ¿Tiene un vínculo más reciente? Yo, sinceramente, espero que no se como se deja en claro que uno no sólo debe entregar una respuesta completa. Ah, y no sé qué «poderes fácticos» significa 😀
- Espero no dar mucha información con la respuesta =)
- Los Poderes fácticos (los poderes fácticos).
- sí, gracias.
- Consulte meta.stackexchange.com/q/123758/172880
- Si sólo desea guardar los bits de distancia, el uso de un
union {int i; float f;}
a reinterpretar laint
comofloat
y viceversa. Tenga cuidado, AFAIR C no es garantía de que son de la misma (algunas arquitecturas de tipo adicional de bits, o hacer otras cosas graciosas aquí).
Seguro. Sin duda se puede construir un número de punto flotante de un raw byte del búfer. De precisión simple
float
s se representan como valores de 32 bits IEEE-754 y puede representar el entero espacio con bastante facilidad. El entrada de la wikipedia en punto flotante de IEEE describe los diferentes formatos. Todo lo que tienes que hacer es averiguar qué bits para establecer o prueba. Mira la página de la wikipedia en precisión simple para una buena descripción de los bits. Aquí empieza:Me dejaba mucho a la imaginación, pero tengo la sensación de que esta es una tarea problema. Una vez que usted entiende la parte que he escrito, que debería ser bastante fácil de hacer el resto. Una mucho mejor solución es utilizar un
union
, pero voy a dejar que un ejercicio para el lector así.Si usted no desea utilizar cualquiera o aritméticos operadores bit a bit, a continuación, puede utilizar un método como
Volverá flotar… puede comprobar en el principal como..
se dará la salida como
que significa que se convierte en el flotador. 🙂