Solidity es un lenguaje de programación completamente nuevo creado por Ethereum , que es el segundo mercado más grande de criptomonedas por capitalización, lanzado en el año 2015 dirigido por Christian Reitwiessner. Ethereum es una plataforma de código abierto descentralizada basada en el dominio blockchain, que se utiliza para ejecutar contratos inteligentes, es decir, aplicaciones que ejecutan el programa exactamente como se programó sin posibilidad de fraude, interferencia de terceros, censura o tiempo de inactividad.
Los contratos inteligentes son códigos de programa de alto nivel que se compilan en el código de bytes EVM y se implementan en la string de bloques de Ethereum para su posterior ejecución. Nos permite realizar transacciones creíbles sin ninguna interferencia de terceros, estas transacciones son rastreables e irreversibles. Las operaciones matemáticas en solidez son tan simples como las usamos en la vida real. Existen las siguientes Operaciones Matemáticas en Solidez:
- Suma (x + y)
- Resta: (x – y)
- Multiplicación (x * y)
- División (x / y)
- Módulo (x % y)
- Exponencial (x**y)
En este artículo, discutiremos estas operaciones en detalle con ejemplos.
Suma
La operación de suma consiste en sumar los dos números y generar una suma.
Ejemplo: En el siguiente ejemplo, se crea un contrato con dos funciones para establecer los valores de las dos variables y una tercera función para sumar las dos variables y devolver la suma.
Solidity
// Solidity program to // demonstrate addition pragma solidity 0.6.6; contract gfgMathPlus { // Declaring the state // variables uint firstNo ; uint secondNo ; // Defining the function // to set the value of the // first variable function firstNoSet(uint x) public { firstNo = x; } // Defining the function // to set the value of the // second variable function secondNoSet(uint y) public { secondNo = y; } // Defining the function // to add the two variables function add() view public returns (uint) { uint Sum = firstNo + secondNo ; // Sum of two variables return Sum; } }
Producción:
Sustracción
La operación de resta consiste en restar los dos números y generar una diferencia. En Resta, podríamos haber usado cualquier valor de Entero (int16 a int256) pero todos los operandos deben ser del mismo tipo de datos (Enteros de los mismos bits).
Ejemplo: En el siguiente ejemplo, se crea un contrato con una función para demostrar la resta de dos números.
Solidity
// Solidity program to // demonstrate the subtraction pragma solidity 0.6.6; contract gfgSubract { // Initializing the // state variables int16 firstNo=2 ; int16 secondNo=10; // Defining a function // to subtract two numbers function Sub() view public returns (int16) { int16 ans = firstNo - secondNo ; // Difference amount return ans; } }
Producción:
Multiplicación
La operación de multiplicación trata de generar un valor de producto al multiplicar dos o más números.
Ejemplo: en el siguiente ejemplo, se crea un contrato con tres funciones, donde las dos primeras funciones son responsables de establecer los valores de las variables, y la tercera función genera un valor de producto al multiplicar las dos primeras variables.
Solidity
pragma solidity 0.6.6; contract gfgMultiply { int128 firstNo ; int128 secondNo ; function firstNoSet(int128 x) public { firstNo = x; } function secondNoSet(int128 y) public { secondNo = y; } function multiply() view public returns (int128) { int128 answer = firstNo * secondNo ; return answer; } }
Producción:
División
La operación de división devuelve el cociente del resultado de la división.
Ejemplo: en el siguiente ejemplo, se crea un contrato con tres funciones, donde las dos primeras funciones son responsables de establecer los valores de las variables, y la tercera función genera un valor de cociente al dividir el segundo número por el primer número.
Solidity
// Solidity program to // demonstrate the // division operation pragma solidity 0.6.6; // Creating a contract contract gfgDivide { // Declaring the // state variables int128 firstNo ; int128 secondNo ; // Defining a function // to set the value of // the first variable function firstNoSet(int64 x) public { firstNo = x; } // Defining function // to set the value of // the second variable function secondNoSet(int64 y) public { secondNo = y; } // Defining function to // return the result function Divide() view public returns (int128) { int128 answer = firstNo / secondNo ; return answer; } }
Nota:
- Podemos ver que dividimos dos enteros de 64 bits y almacenamos con éxito el resultado en un entero de 128 bits.
- Esto solo es posible en el caso de la operación de multiplicación y división.
Producción:
módulo o resto
Esta operación devuelve el resto del resultado del proceso de división de dos números.
Ejemplo: en el siguiente ejemplo, se crea un contrato con tres funciones, donde las dos primeras funciones son responsables de establecer los valores de las variables, y la tercera función genera un valor restante al dividir el segundo número por el primer número. En la operación de módulo, todas las variables deben ser números enteros de la misma longitud de bits.
Solidity
// Solidity program to // demonstrate the // Modulus operation pragma solidity ^0.6.6; // Creating a contract contract gfgModulo { // Declaring state variables uint firstNo ; uint secondNo ; // Defining a function // to set the value of // the first variable function firstNoSet(uint x) public { firstNo = x; } // Defining a function // to set the value of // the second variable function secondNoSet(uint y) public { secondNo = y; } // Defining a function to return // the modulus value function Modulo() view public returns (uint) { uint answer = firstNo % secondNo ; return answer; } }
Producción:
exponenciación
La operación de exponenciación solo funciona en los enteros sin signo donde los enteros sin signo de bits inferiores se pueden calcular y almacenar en un entero sin signo de bits superior.
Solidity
// Solidity program to // demonstrate the // exponentiation operation pragma solidity ^0.6.6; // Creating a contract contract gfgExpo { // Declaring the state // variables uint16 firstNo ; uint16 secondNo ; // Defining the first function // to set the value of // first variable function firstNoSet(uint16 x) public { firstNo = x; } // Defining the function // to set the value of // the second variable function secondNoSet(uint16 y) public { secondNo = y; } // Defining the function to // calculate the exponent function Expo() view public returns (uint256) { uint256 answer = firstNo ** secondNo ; return answer; } }
Producción:
Nota:
- En Suma, Resta y Módulo todos los operandos deben ser del mismo tamaño Entero.
- En división y multiplicación, la respuesta calculada se puede almacenar en enteros de bits mayores, pero los operandos deben ser enteros del mismo tamaño.
- En la función de exponenciación, los operandos deben ser enteros sin signo. Los bits inferiores Los enteros sin signo se pueden calcular y almacenar en un entero superior pero sin signo.
- Debe establecer el mismo tipo de datos de todos los operandos para aplicarles una operación matemática, de lo contrario no se ejecutarán.
Publicación traducida automáticamente
Artículo escrito por chetangarg1905 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA