Envoy-VC
/
30-Days-of-Solidity
30 Days of Solidity step-by-step guide to learn Smart Contract Development.
This is Day 5 of 30 in Solidity Series
Today I Learned About Operators in Solidity.
Solidity supports the following types of operators.
- Arithmetic Operators
- Comparison Operators
- Logical (or Relational) Operators
- Assignment Operators
- Conditional (or ternary) Operators
Arithmetic Operators
| Operator | Description | Example |
|---|---|---|
| + (Addition) | Adds two operands | A + B will give 30 |
| - (Subtraction) | Subtracts the second operand from the first | A - B will give -10 |
| * (Multiplication) | Multiply both operands | A * B will give 200 |
| / (Division) | Divide the numerator by the denominator | B / A will give 2 |
| % (Modulus) | Outputs the remainder of an integer division | B % A will give 0 |
| ++ (Increment) | Increases an integer value by one | A++ will give 11 |
| -- (Decrement) | Decreases an integer value by one | A-- will give 9 |
Comparison Operators
| Operator | Description | Example |
|---|---|---|
| = = (Equal) | Checks if the value of two operands are equal or not, if yes, then the condition becomes true. | (A == B) is not true. |
| != (Not Equal) | Checks if the value of two operands are equal or not, if the values are not equal, then the condition becomes true. | (A != B) is true. |
| > (Greater than) | Checks if the value of the left operand is greater than the value of the right operand, if yes, then the condition becomes true. | (A > B) is not true. |
| < (Less than) | Checks if the value of the left operand is less than the value of the right operand, if yes, then the condition becomes true. | (A < B) is true. |
| >= (Greater than or Equal to) | Checks if the value of the left operand is greater than or equal to the value of the right operand, if yes, then the condition becomes true. | (A >= B) is not true. |
| <= (Less than or Equal to) | Checks if the value of the left operand is less than or equal to the value of the right operand, if yes, then the condition becomes true. | (A <= B) is true. |
Logical (or Relational) Operators
Assume variable A holds 10 and variable B holds 20, then −
| Operator | Description | Example |
|---|---|---|
| && (Logical AND) | If both the operands are non-zero, then the condition becomes true. | (A && B) is true. |
| \ | \ | (Logical OR) |
| ! (Logical NOT) | Reverses the logical state of its operand. If a condition is true, then the Logical NOT operator will make it false. | ! (A && B) is false. |
Bitwise Operators
Assume variable A holds 2 and variable B holds 3, then −
| Operator | Description | Example |
|---|---|---|
| & (Bitwise AND) | It performs a Boolean AND operation on each bit of its integer arguments. | It performs a Boolean AND operation on each bit of its integer arguments. |
| \ | (BitWise OR) | It performs a Boolean OR operation on each bit of its integer arguments. |
| ^ (Bitwise XOR) | It performs a Boolean exclusive OR operation on each bit of its integer arguments. Exclusive OR means that either operand one is true or operand two is true, but not both. | (A ^ B) is 1. |
| ~ (Bitwise Not) | It is a unary operator and operates by reversing all the bits in the operand. | (~B) is -4. |
| << (Left Shift) | It moves all the bits in its first operand to the left by the number of places specified in the second operand. New bits are filled with zeros. Shifting a value left by one position is equivalent to multiplying it by 2, shifting two positions is equivalent to multiplying by 4, and so on. | (A << 1) is 4. |
| >> (Right Shift) | Binary Right Shift Operator. The left operand's value is moved right by the number of bits specified by the right operand. | (A >> 1) is 1. |
| >>> (Right shift with Zero) | This operator is just like the >> operator, except that the bits shifted in on the left are always zero. | (A >>> 1) is 1. |
Assignment Operators
| Operator | Description | Example |
|---|---|---|
| = (Simple Assignment ) | Assigns values from the right side operand to the left side operand | C = A + B will assign the value of A + B into C |
| += (Add and Assignment) | It adds the right operand to the left operand and assigns the result to the left operand. | C += A is equivalent to C = C + A |
| −= (Subtract and Assignment) | It subtracts the right operand from the left operand and assigns the result to the left operand. | C -= A is equivalent to C = C - A |
| *= (Multiply and Assignment) | It multiplies the right operand with the left operand and assigns the result to the left operand. | C *= A is equivalent to C = C * A |
| /= (Divide and Assignment) | It divides the left operand with the right operand and assigns the result to the left operand. | C /= A is equivalent to C = C / A |
| %= (Modules and Assignment) | It takes modulus using two operands and assigns the result to the left operand. | C %= A is equivalent to C = C % A |
Note − Same logic applies to Bitwise operators so they will become like <<=, >>=, >>=, &=, |= and ^=
Conditional Operator (? :)
The conditional operator first evaluates an expression for a true or false value and then executes one of the two given statements depending upon the result of the evaluation.
| Operator | Description |
|---|---|
| ? : (Conditional ) | If Condition is true? Then value X : Otherwise value Y |
Top comments (0)