Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Data types (uint, int, bool, address, string) in Blockchain / Solidity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a uint in blockchain programming?
A uint is an unsigned integer data type that stores only non-negative whole numbers (0 and above). It cannot hold negative values.
Click to reveal answer
beginner
How does an int differ from a uint?
An int is a signed integer that can hold both negative and positive whole numbers, while a uint holds only non-negative numbers.
Click to reveal answer
beginner
What values can a bool data type hold?
A bool can hold only two values: true or false. It is used to represent yes/no or on/off states.
Click to reveal answer
beginner
What is the purpose of the address data type in blockchain?
The <strong>address</strong> type stores a blockchain account's unique identifier. It is used to hold wallet or contract addresses.
Click to reveal answer
beginner
What kind of data does the string type store?
The string type stores text data, like words or sentences, made up of characters.
Click to reveal answer
Which data type can store negative numbers?
Aint
Baddress
Cbool
Duint
What values can a bool hold?
AAny number
BTrue or False
CText strings
DBlockchain addresses
Which data type is used to store a wallet or contract identifier?
Aaddress
Bbool
Cstring
Dint
What type of data does string hold?
ABlockchain addresses
BTrue or False
CNumbers only
DText characters
Which data type cannot hold negative values?
Aint
Bbool
Cuint
Dstring
Explain the difference between int and uint data types.
Think about whether the number can be below zero.
You got /3 concepts.
    Describe the purpose of the address data type in blockchain.
    It holds where money or contracts live on the blockchain.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which data type should you use in Solidity to store a number that can only be zero or positive?
      easy
      A. bool
      B. uint
      C. int
      D. address

      Solution

      1. Step 1: Understand the difference between uint and int

        uint stands for unsigned integer, meaning it can only hold zero or positive numbers. int can hold both positive and negative numbers.
      2. Step 2: Identify the correct type for only zero or positive numbers

        Since the question asks for numbers that are zero or positive only, uint is the correct choice.
      3. Final Answer:

        uint -> Option B
      4. Quick Check:

        Positive numbers = uint [OK]
      Hint: Use uint for non-negative numbers only [OK]
      Common Mistakes:
      • Choosing int for positive-only numbers
      • Confusing bool with numeric types
      • Using address for numbers
      2. Which of the following is the correct way to declare a boolean variable named isActive in Solidity?
      easy
      A. bool isActive = 0;
      B. bool isActive = 1;
      C. bool isActive = "true";
      D. bool isActive = true;

      Solution

      1. Step 1: Recall the correct boolean values in Solidity

        Boolean variables can only be assigned true or false, not numbers or strings.
      2. Step 2: Check each option for correct boolean assignment

        bool isActive = true; assigns true correctly. Options B and D use numbers, and C uses a string, which are invalid for bool.
      3. Final Answer:

        bool isActive = true; -> Option D
      4. Quick Check:

        Boolean = true or false [OK]
      Hint: Assign true or false to bool variables [OK]
      Common Mistakes:
      • Using 1 or 0 instead of true/false
      • Assigning strings like "true"
      • Missing semicolon at the end
      3. What will be the output of this Solidity code snippet?
      int x = -5;
      uint y = 10;
      bool flag = (x < 0);
      string memory text = "Hello";
      address addr = 0x1234567890123456789012345678901234567890;
      
      // Output values
      x
      flag
      text
      addr
      medium
      A. Compilation error due to address format
      B. 5, false, Hello, 0x1234567890123456789012345678901234567890
      C. -5, true, Hello, 0x1234567890123456789012345678901234567890
      D. -5, false, "Hello", 0x0

      Solution

      1. Step 1: Analyze each variable's value

        x is -5 (signed int), flag is true because x < 0, text is "Hello", and addr is a valid address.
      2. Step 2: Confirm output matches variable values

        -5, true, Hello, 0x1234567890123456789012345678901234567890 correctly lists all values as expected. 5, false, Hello, 0x1234567890123456789012345678901234567890 incorrectly changes x and flag. -5, false, "Hello", 0x0 has wrong flag and addr. Compilation error due to address format is wrong because the address format is valid.
      3. Final Answer:

        -5, true, Hello, 0x1234567890123456789012345678901234567890 -> Option C
      4. Quick Check:

        Variable values printed as is [OK]
      Hint: Check variable types and values carefully [OK]
      Common Mistakes:
      • Assuming uint can hold negative values
      • Confusing string quotes in output
      • Thinking address format is invalid
      4. Identify the error in this Solidity variable declaration:
      address myAddress = "0xAbC1234567890";
      medium
      A. Address must be assigned without quotes
      B. Address must be declared as string
      C. Address cannot start with 0x
      D. Address must be declared as bool

      Solution

      1. Step 1: Understand address assignment rules

        In Solidity, addresses are assigned as hexadecimal literals without quotes, not as strings.
      2. Step 2: Identify the error in the code

        The code uses quotes around the address, making it a string, which is invalid for address type.
      3. Final Answer:

        Address must be assigned without quotes -> Option A
      4. Quick Check:

        Address literals have no quotes [OK]
      Hint: Assign addresses without quotes to avoid errors [OK]
      Common Mistakes:
      • Using quotes around addresses
      • Declaring address as string
      • Removing 0x prefix from address
      5. You want to store user information in a Solidity contract with these fields: user ID (positive number), username (text), active status (true/false), and wallet address. Which data types should you use for these fields?
      hard
      A. uint for user ID, string for username, bool for active status, address for wallet
      B. int for user ID, string for username, uint for active status, address for wallet
      C. uint for user ID, address for username, bool for active status, string for wallet
      D. string for user ID, string for username, bool for active status, address for wallet

      Solution

      1. Step 1: Match each field to the correct data type

        User ID is a positive number, so uint fits. Username is text, so string. Active status is true/false, so bool. Wallet address is a blockchain address, so address.
      2. Step 2: Verify options against these matches

        uint for user ID, string for username, bool for active status, address for wallet matches all fields correctly. Other options mix types incorrectly, like using int for user ID or swapping string and address.
      3. Final Answer:

        uint for user ID, string for username, bool for active status, address for wallet -> Option A
      4. Quick Check:

        Match field types carefully [OK]
      Hint: Match data types to field meaning exactly [OK]
      Common Mistakes:
      • Using int for positive-only IDs
      • Confusing string and address
      • Using uint for boolean values
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard