Conversión simple de int → float en WebAssembly

Ejemplo básico de WebAssembly que convierte un entero a float de 32 bits, ideal para principiantes con código listo para compilar y usar en JavaScript.

Breve Introducción

Conversión simple de int → float en WebAssembly (wasm)
DESCRIPCIÓN:
Ejemplo básico de WebAssembly que convierte un número entero en un número float de 32 bits, mostrando cómo realizar la conversión y devolver el resultado.

NOTAS ADICIONALES:
Este ejemplo está pensado para principiantes absolutos, con comentarios en italiano para facilitar la comprensión. El código está listo para ser compilado y probado en cualquier entorno que soporte WebAssembly.

EXPLICACIONES:
- El módulo WebAssembly define una función 'int_to_float' que toma un parámetro entero (i32) y devuelve un float de 32 bits (f32).
- La conversión se realiza mediante la instrucción 'f32.convert_i32_s' que convierte un entero con signo a float.
- El módulo exporta la función para poder ser llamada desde JavaScript u otros entornos host.
- El código JavaScript muestra cómo cargar el módulo, llamar a la función e imprimir el resultado.
×
×
×
¿Quieres regenerar la respuesta?
×
Exportar chat
Elige el formato de exportación
⏳ Generazione PDF in corso…
Allegati
×
⚠️ Estás a punto de cerrar el chat y pasar al generador de imágenes. Si no has iniciado sesión, perderás nuestro chat. ¿Confirmas?
👁 Estás viendo un chat compartido en modo temporal. No se guardará.
💬
×
Prompts guardados
×
Nota privada
×
Etiqueta
×
Buscar en todos los chats
×
Tus insights
Analizando…
×
Preferencias de IA
Nombre del asistente 30
Longitud de las respuestas
Modelo de IA
Respuestas estructuradas
Incluir ejemplos
Usar emojis
Guíame, no resuelvas Pistas y preguntas en vez de la solución hecha
Más ajustes →
×
Compartir este chat
Quien abra este enlace podrá ver el chat o añadirlo a su perfil como chat propio.
⚠️ Atención: también se compartirán los archivos adjuntos del chat. Quien lo añada recibirá una copia en su propia carpeta.
Chat compartido
Alguien ha compartido un chat contigo. ¿Solo quieres verlo o añadirlo a tus chats?
⚠️ Atención: también se compartirán los archivos adjuntos del chat. Quien lo añada recibirá una copia en su propia carpeta.
×

📌 Mensajes guardados

Cargando...

×

Historial de Chat

programas-ejemplo · HISTORIAL DE CHAT

Cargando...

Preferencias de IA

×
  • 🟢 BásicoRespuestas rápidas y esenciales para estudiar
  • 🔵 MedioMayor calidad para estudio y programación
  • 🟣 AvanzadoRazonamiento complejo y análisis detallado
Explicar Pasos

Ejemplo Completo

html
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Ejemplo WebAssembly: Conversión int a float</title>
</head>
<body>
  <h1>Conversión simple de int a float en WebAssembly</h1>
  <p>Resultado de convertir 42 a float: <span id="resultado">Cargando...</span></p>

  <script type="module">
    // Código WAT del módulo WebAssembly
    const watCode = `
    (module
      (func $int_to_float (param $x i32) (result f32)
        local.get $x
        f32.convert_i32_s
      )
      (export "int_to_float" (func $int_to_float))
    )`;

    // Función para convertir WAT a WASM binario usando wat2wasm
    // En entorno real, se necesita una herramienta externa o usar WebAssembly.instantiateStreaming con un archivo wasm.
    // Aquí se usa una función simulada para propósitos del ejemplo.

    async function compileWat(wat) {
      // Usamos la API WebAssembly.compileStreaming si se tiene un archivo wasm
      // Para este ejemplo, se usa un compilador externo o librería como wat2wasm
      // Aquí se asume que existe una función global wat2wasm para convertir el código WAT a WASM.
      if (typeof wat2wasm !== 'function') {
        throw new Error('wat2wasm no está disponible. Use un entorno que soporte la conversión o un archivo wasm precompilado.');
      }
      const wasmBinary = wat2wasm(wat);
      return await WebAssembly.compile(wasmBinary);
    }

    (async () => {
      try {
        // Compilar el módulo WebAssembly
        const wasmModule = await compileWat(watCode);

        // Instanciar el módulo
        const instance = await WebAssembly.instantiate(wasmModule);

        // Llamar a la función exportada con el valor 42
        const result = instance.exports.int_to_float(42);

        // Mostrar el resultado en la página
        document.getElementById('resultado').textContent = result;
      } catch (e) {
        document.getElementById('resultado').textContent = 'Error: ' + e.message;
      }
    })();
  </script>

  <!--
  Código original WASM:
  (module
    (func $int_to_float (param $x i32) (result f32)
      local.get $x
      f32.convert_i32_s
    )
    (export "int_to_float" (func $int_to_float))
  )
  -->
</body>
</html>

¿Qué se necesita?

WebAssembly: módulo escrito en WAT (WebAssembly Text Format) que realiza la conversión de int a float.

Toolchain: uso de wat2wasm para compilar el código WAT en binario WebAssembly.

JavaScript: código para cargar y ejecutar el módulo WebAssembly en navegador o entorno Node.js.

Configuración: no se requieren dependencias externas, entorno estándar con soporte WebAssembly.

Arduino: no aplicable en este ejemplo, código centrado en WebAssembly.

Temas Similares

Hola WebAssembly: tu primer módulo mínimo
Ejemplo mínimo de módulo WebAssembly en formato WAT que exporta una función para sumar enteros, ideal para aprender WebAssembly básico.
Impresión de un mensaje con WebAssembly y JavaScript
Ejemplo completo para imprimir un mensaje usando WebAssembly y JavaScript, ideal para principiantes que quieren aprender integración básica.
Suma de dos números en WebAssembly
Ejemplo completo de módulo WebAssembly en WAT que suma dos números enteros, ideal para principiantes en programación WebAssembly.
Mini calculadora de suma en WebAssembly
Mini calculadora en WebAssembly que suma dos enteros usando código WAT, ideal para principiantes y compatible con navegadores modernos y runtimes.
Devolución de una constante desde un módulo WebAssembly
Ejemplo completo de módulo WebAssembly que exporta una función para devolver una constante entera, ideal para principiantes en WebAssembly y JavaScript.
Función básica de multiplicación en WebAssembly
Ejemplo completo de función WebAssembly que multiplica dos enteros, con código WAT comentado en italiano para facilitar su comprensión.
Llamar a una función WebAssembly desde JavaScript
Ejemplo completo para llamar una función WebAssembly desde JavaScript que suma dos enteros, ideal para principiantes en WASM y JS.
Exportar e importar una única función WebAssembly
Ejemplo completo para exportar e importar una función WebAssembly usando WAT, ideal para principiantes en entornos Node.js y navegadores modernos.