What is the purpose of using underscores in Kotlin number literals?
Underscores in Kotlin number literals make large numbers easier to read by visually separating digits, like commas in regular numbers. They do not affect the actual value.
Click to reveal answer
beginner
How do you write a hexadecimal number literal in Kotlin?
In Kotlin, a hexadecimal number literal starts with 0x or 0X followed by digits 0-9 and letters A-F (case insensitive). For example, 0x1A3F.
Click to reveal answer
beginner
How do you write a binary number literal in Kotlin?
A binary number literal in Kotlin starts with 0b or 0B followed by only 0s and 1s. For example, 0b1010_1101.
Click to reveal answer
intermediate
Can underscores be placed anywhere in Kotlin number literals?
Underscores can be placed between digits in Kotlin number literals to improve readability, but not at the start or end of the number, nor next to the decimal point or prefixes like 0x or 0b.
Click to reveal answer
intermediate
Example: What is the decimal value of 0xFF_EC_DE_5E in Kotlin?
The hexadecimal literal 0xFF_EC_DE_5E equals 4293713502 in decimal. The underscores are ignored when computing the value.
Click to reveal answer
Which of the following is a valid Kotlin binary literal?
A0b1021
B0x1010_1101
C1010_1101b
D0b1010_1101
✗ Incorrect
Binary literals start with 0b or 0B and contain only 0s and 1s. Option D is correct.
What does the underscore do in Kotlin number literals?
AMarks the number as hexadecimal
BMultiplies the number by 1000
CSeparates digits for readability without changing the value
DIndicates a negative number
✗ Incorrect
Underscores improve readability but do not affect the number's value.
Which prefix is used for hexadecimal literals in Kotlin?
A0x
B#
C0b
D0h
✗ Incorrect
Hexadecimal literals start with 0x or 0X.
Is this Kotlin number literal valid? 0x_1A3F
ANo, underscore cannot be right after the prefix
BYes, underscores can be anywhere
CYes, but only in binary literals
DNo, underscores are not allowed in hex literals
✗ Incorrect
Underscores cannot be placed immediately after the prefix like 0x.
What is the decimal value of 0b1111_0000?
A15
B240
C11110000
D128
✗ Incorrect
Binary 11110000 equals decimal 240.
Explain how to write and use underscores in Kotlin number literals.
Think about how commas help read big numbers.
You got /4 concepts.
Describe how to write hexadecimal and binary number literals in Kotlin with examples.
Remember the prefixes and allowed digits.
You got /4 concepts.
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
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.
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).
Final Answer:
1_000_000 -> Option D
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
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.
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.
Final Answer:
123_456_ -> Option A
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
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.
Step 2: Add the decimal values
250 + 170 = 420.
Final Answer:
420 -> Option C
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
Step 1: Understand valid digits in binary literals
Binary literals can only contain digits 0 and 1, optionally separated by underscores.
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.
Final Answer:
Binary literals cannot contain digits other than 0 or 1 -> Option B
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
Step 1: Convert decimal 255 to binary
255 in binary is 11111111 (eight ones).
Step 2: Add underscores for readability
Grouping bits in fours is common, so 1111_1111 is clearer and valid.
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'.
Final Answer:
0b1111_1111 -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.