Introduction to Technology | Solidity Programming Language: Boolean and Integer

HelloWorld

A smart contract is like a contract, and every code you write is the content of a contract. Therefore, once the contract is deployed, the content of the contract cannot be modified. It is like you can't modify it after you signed a contract with someone else. This is also based on the intangible nature of the blockchain. In the usual programming languages, standard output is generally used to print "Hello World". Solidity is a smart contract programming language. It is a different programming language. It is based on Ethereum and is used to write "contracts." "of. So instead of using "HelloWorld" as an example, use an entry example in Solidity's official website.

pragma solidity >=0.4.0 <0.6.0; contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { return storedData; } } 

 

The above code is a contract called SimpleStorage written in Solidity.

  1. The first line of code is used to specify the language version of Solidity. The pragma solidity is a fixed format, followed by the version number. The version number is determined by the range, which is equal to 0.4.0 and less than 0.6.0. On the Internet, you will often see the writing method of ^0.4.21, which is supported in versions earlier than 0.5.2. For example, if you write pragma solidity ^0.5.3 in the remix-ide environment, you will be prompted with a compilation error: browser/Untitled.sol:3:1: ParserError: Source file requires different compiler version (current compiler is 0.5.2+commit.1df8f40c .Emscripten.clang – note that nightly builds are considered to be strictly less than the released version.
  2. The second code creates a contract called SimpleStorage. Contract is the keyword and SimpleStorage is the contract name. This class definition similar to java, class Person{}, is easier to understand.
  3. The third line of code sets an unsigned integer storedData. This state variable will be stored in the blockchain, just like writing to the database for persistence and reading.
  4. Define the set method, assign the state variable storedData, where public is the key, and the modified set method can be called outside the contract.
  5. Define the get method, return the value of the state variable storedData, the writing of the return value is slightly different, the keyword is returns, not return, and the return value can be multiple, wrapped in parentheses. This is a simple contract written by Solidity, which is easy to understand for people with programming experience.

2. Boolean and integer

2.1 Boolean

The bool type is the same as other languages, and the value is true or false. The operation operations are !, ||, &&, !=, ==. Note that there is no |, &.

Pragma solidity >=0.4.22 <0.6.0; contract EgBool { bool isOne; bool isTwo; function operation() public { isOne = true; if (isOne){ // dosomething }

If (!isOne){ // dosomething }

If (isOne || isTwo ){ // dosomething }

If (isOne && isTwo ){ // dosomething }

If (isOne != isTwo ){ // dosomething }

If (isOne == isTwo ){ // dosomething } } }

2.2 Integer

Integers include unsigned uint and signed int. Each type has multiple lengths, such as uint8, uint64, int128, etc., and the length ranges from 8 to 256, with a difference of 8 lengths, 8, 16, 24, 32. …256. Where uint is the same as uint256, and int is the same as int256. There are three kinds of arithmetic operations: comparison, bit operation and arithmetic operation.

  • Comparison operation: <= , < , == , != , >= , >.
  • Bit operations: & (and), | (or), ^ (exclusive OR), ~ (not).
  • Arithmetic operations: +, -, *, /, %, (power, exponentiation), << (left shift), >> (right shift) where left and right shift operations, a<<b, can be understood as a is multiplied by 2 b to the power of a*2b, and the same right shifts a>>b to a/2**b.
 pragma solidity >=0.4.22 <0.6.0; contract EgInt { int i = 0; int8 i8 = -1; int256 i256 = 256; 

Uint ui = 0; uint ui8 = 1; uint256 ui256 = 256;

Function operation() public { if ( i < i8 || i <= i8 || i == i8 || i != i8 || i > i8 || i >= i8 ){ //dosomeing }

Int a; int b; int c; c = a & b; c = a | b; c = a ^ b; c = ~ b;

c = a + b; c = a - b; c = a * b; c = a / b; c = a % b; c = a << b; c = a >> b;

//c = a**b; uint d; uint e; uint f; f = d**e; //c = d**e; } }

 

note:

  1. Signed integers are not able to use the "**" operation.
  2. Signed and unsigned cannot be type-converted and cannot be parameterized at the same time, such as c = d + e.

Author: thank HPB Blue Lotus team finishing feeds.

Wang Xiaoming blog: http://wangxiaoming.com/

Wang Xiaoming: Founder of HPB core chain. More than ten years of experience in financial big data and blockchain technology development, he has participated in the creation of UnionPay big data. The main creative blockchain teaching video program "Ming Shuo" more than 30 issues, compiled the "Ethernet official website document Chinese version", and as the main author wrote the "blockchain development guide", in the Chinese blockchain community with ID "blue lotus "famous.

We will continue to update Blocking; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Market

📰 OKX Suspends Mining Pools: A Shift in the Crypto Industry 🚫⛏️

Industry players may need to adapt as OKX plans to temporarily suspend its mining pools, challenging companies to fin...

Blockchain

EOS Labs, ESCC, and ENF Join Forces for Stellar Stablecoin Solutions

EOS Labs and EOS Network Foundation have teamed up with ESCC to bring stablecoin-based gas fees and Ethereum compatib...

Market

LDO token takes a nosedive as Lido DAO pulls the plug on liquid staking adventures in Solana

Lido DAO has announced the sunset of its Lido on Solana project, after a successful community vote supporting this de...

Blockchain

Solana ($SOL): From Soaring High to Sinking Low

Solana ($SOL) experienced a significant rise in value and briefly reached the $80 mark, but was met with bearish resi...

Market

Shiba Memu: A Presale Worth Barking About

Jump on the bandwagon Shiba Memu's presale ends soon and everyone is buzzing about investing in gold.

Bitcoin

Marathon Digital Launches Anduro: Revolutionizing the Bitcoin Ecosystem

Exciting news from Marathon Digital as they unveil Anduro, a state-of-the-art multi-chain sidechain network aimed at ...