Bird
Raised Fist0
Kotlinprogramming~20 mins

Number literal formats (underscore, hex, binary) in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Number Literal Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
Output of Kotlin number literals with underscores
What is the output of this Kotlin code snippet?
Kotlin
fun main() {
    val number = 1_000_000
    println(number)
}
A1000000
B1000_000
C1_000_000
D100000
Attempts:
2 left
💡 Hint
Underscores in number literals are ignored by the compiler and only improve readability.
❓ Predict Output
intermediate
1:30remaining
Output of Kotlin hexadecimal literal
What will this Kotlin code print?
Kotlin
fun main() {
    val hexNumber = 0x1A
    println(hexNumber)
}
A0x1A
B1A
C26
D31
Attempts:
2 left
💡 Hint
Hexadecimal literals start with 0x and represent base 16 numbers.
❓ Predict Output
advanced
2:00remaining
Output of Kotlin binary literal with underscores
What is the output of this Kotlin program?
Kotlin
fun main() {
    val binaryNumber = 0b1010_1101
    println(binaryNumber)
}
A173
B10101101
C0b10101101
D165
Attempts:
2 left
💡 Hint
Binary literals start with 0b and represent base 2 numbers. Underscores are ignored.
❓ Predict Output
advanced
2:00remaining
Sum of mixed number literals in Kotlin
What is the output of this Kotlin code?
Kotlin
fun main() {
    val a = 0xF
    val b = 0b10_10
    val c = 10_4
    println(a + b + c)
}
A135
B129
C140
D150
Attempts:
2 left
💡 Hint
Convert each literal to decimal before adding: 0xF = 15, 0b10_10 = 10, 10_4 = 104.
❓ Predict Output
expert
2:00remaining
Output of Kotlin code with invalid underscore placement
What error does this Kotlin code produce?
Kotlin
fun main() {
    val invalidNumber = 0x_1F
    println(invalidNumber)
}
ANo error, prints 31
BNumberFormatException
CIllegalArgumentException
DSyntaxError
Attempts:
2 left
💡 Hint
Underscores cannot be placed right after the 0x prefix in hexadecimal literals.

Practice

(1/5)
1. Which of the following is a valid way to write the number one million in Kotlin using underscores for readability?
easy
A. 1__000000
B. 1000_000_
C. 10__00_000
D. 1_000_000

Solution

  1. Step 1: Understand underscore usage in Kotlin numbers

    Kotlin allows underscores between digits to improve readability, but they must not be consecutive, leading, or trailing.
  2. Step 2: Check each option for correct underscore placement

    1_000_000 uses single underscores separating groups of three digits correctly. A has consecutive underscores (invalid). B has trailing underscore (invalid). C has consecutive underscores (invalid).
  3. Final Answer:

    1_000_000 -> Option D
  4. Quick Check:

    Underscores separate digits properly = 1_000_000 [OK]
Hint: Use single underscores between digit groups only [OK]
Common Mistakes:
  • Using double underscores
  • Placing underscores at start or end
  • Trailing underscores
2. Which of the following Kotlin number literals is NOT valid syntax?
easy
A. 123_456_
B. 0b1010_1101
C. 0x1A3F
D. 987_654

Solution

  1. Step 1: Review Kotlin rules for underscores in number literals

    Underscores can be used between digits but not at the end or start of a number.
  2. Step 2: Check each option for trailing underscores

    123_456_ ends with an underscore, which is invalid syntax. Options A, B, and D are valid hexadecimal, binary, and decimal literals respectively.
  3. Final Answer:

    123_456_ -> Option A
  4. Quick Check:

    Trailing underscore invalid = 123_456_ [OK]
Hint: Never put underscore at the end of a number [OK]
Common Mistakes:
  • Trailing underscores in numbers
  • Confusing hex prefix 0x with decimal
  • Misplacing underscores in binary literals
3. What is the output of this Kotlin code?
val x = 0xF_A
val y = 0b1010_1010
println(x + y)
medium
A. 270
B. 250
C. 420
D. 280

Solution

  1. Step 1: Convert hexadecimal and binary literals to decimal

    0xF_A means hex FA: F=15, A=10, so 15*16 + 10 = 250. 0b1010_1010 is binary 10101010 which equals 128+32+8+2=170.
  2. Step 2: Add the decimal values

    250 + 170 = 420.
  3. Final Answer:

    420 -> Option C
  4. Quick Check:

    (0xFA + 0b10101010) = 420 [OK]
Hint: Convert hex and binary to decimal before adding [OK]
Common Mistakes:
  • Misreading hex digits
  • Incorrect binary to decimal conversion
  • Ignoring underscores in literals
4. Identify the error in this Kotlin code snippet:
val num = 0b1021_0010
medium
A. Underscores are not allowed in binary literals
B. Binary literals cannot contain digits other than 0 or 1
C. Binary literals must start with 0x
D. The number is too large for binary format

Solution

  1. Step 1: Understand valid digits in binary literals

    Binary literals can only contain digits 0 and 1, optionally separated by underscores.
  2. Step 2: Check the given literal for invalid digits

    The literal contains '2', which is invalid in binary. Underscores are allowed, and binary literals start with 0b, not 0x.
  3. Final Answer:

    Binary literals cannot contain digits other than 0 or 1 -> Option B
  4. Quick Check:

    Binary digits must be 0 or 1 only [OK]
Hint: Binary digits only 0 or 1, no other digits allowed [OK]
Common Mistakes:
  • Using digits other than 0 or 1 in binary
  • Confusing hex prefix 0x with binary 0b
  • Thinking underscores are disallowed in binary
5. You want to represent the decimal number 255 in Kotlin using a binary literal with underscores for readability. Which of the following is the best way to write it?
hard
A. 0b1111_1111
B. 0b11111111
C. 0b1111_1110
D. 0b1111_11112

Solution

  1. Step 1: Convert decimal 255 to binary

    255 in binary is 11111111 (eight ones).
  2. Step 2: Add underscores for readability

    Grouping bits in fours is common, so 1111_1111 is clearer and valid.
  3. Step 3: Check options for correctness

    0b1111_1111 correctly uses underscores and matches 255. 0b11111111 is correct but less readable. 0b1111_1110 is 254, and 0b1111_11112 has invalid digit '2'.
  4. Final Answer:

    0b1111_1111 -> Option A
  5. Quick Check:

    Binary 1111_1111 = 255 decimal [OK]
Hint: Group binary digits in fours with underscores [OK]
Common Mistakes:
  • Using wrong binary digits
  • Adding invalid digits like 2
  • Not grouping bits for readability
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