Punto flotante en sCrypt – CoinGeek

Punto flotante en sCrypt - CoinGeek

Esta publicación se publicó originalmente en Medium y se volvió a publicar con el permiso de Xiaohui Liu.

SCrypt no admite el punto flotante de forma nativa, principalmente debido al alto costo de implementarlo (como el estándar de punto flotante IEEE), que utiliza aritmética integrada en Bitcoin Script. Sin embargo, hay muchos casos en los que los números fraccionarios son indispensables. Proporcionamos dos bibliotecas para respaldar estos casos.

Aritmética de punto fijo

Una forma sencilla de representar un número fraccionario es almacenar un dígito fijo de su parte fraccionaria, escalado por un factor fijo. Por ejemplo, si divide el número entero 1 en sCrypt por el número entero 2, normalmente será cero:

1/2 = 0

Si escalamos ambos con un punto fijo en 10, obtenemos 5, que es 0.5 como se esperaba:

10 * 10/20 = 5

El siguiente directorio admite el número de puntos fijos.

Biblioteca FixedPoint
Biblioteca FixedPoint

Gracias al soporte nativo de la máquina virtual Bitcoin de cualquier longitud, es extremadamente fácil implementar un punto fijo precisión arbitraria. No hay desbordamiento ni subdesbordamiento. A continuación se muestra un ejemplo de su uso.

Aritmética de coma flotante

En los casos en los que se deba mantener una alta precisión en varios pasos sucesivos del cálculo, se prefiere la siguiente biblioteca de punto flotante. Logra precisión a costa del rendimiento. Un número se almacena de la siguiente manera n / A.

Biblioteca de coma flotante
Biblioteca de coma flotante

A continuación, se muestran algunos ejemplos de cómo utilizarlo.

¿Nuevo en Bitcoin? Echa un vistazo a CoinGeek’s Bitcoin para principiantes sección, la guía de recursos definitiva para aprender más sobre Bitcoin, como lo imaginó originalmente Satoshi Nakamoto, y la cadena de bloques.

Deja una respuesta