What if you could write numbers exactly how you think about them, without confusion or mistakes?
Why Numeric literal formats in Swift? - Purpose & Use Cases
Imagine you need to write a program that uses many numbers, like phone numbers, prices, or measurements. You type each number exactly as it looks, but some are very long or have different bases like binary or hexadecimal. It becomes hard to read and easy to make mistakes.
Writing numbers only in one format, like plain decimal, makes your code confusing and error-prone. You might misread a long number or forget to convert a binary value correctly. Changing formats manually takes time and can cause bugs.
Numeric literal formats let you write numbers in different ways directly in your code, like binary, octal, decimal, or hexadecimal. This makes numbers clearer and easier to understand, so you avoid mistakes and save time.
let number = 255 let binary = 11111111 // but this is just a number, not binary let hex = 255
let number = 255 let binary = 0b11111111 let hex = 0xff
You can write and read numbers in the format that makes the most sense, making your code clearer and less error-prone.
When programming a game, you might use hexadecimal to set colors or binary to control hardware flags. Numeric literal formats let you write these numbers naturally and clearly.
Manual number writing is confusing and error-prone.
Numeric literal formats let you write numbers in binary, octal, decimal, or hexadecimal.
This makes code easier to read, write, and maintain.
Practice
Solution
Step 1: Understand binary literal format in Swift
Binary literals start with0bfollowed by 0s and 1s.Step 2: Check each option
0b1010uses0bprefix correctly.0x1010is hexadecimal, C is invalid, A is octal.Final Answer:
0b1010 -> Option AQuick Check:
Binary literals start with 0b = D [OK]
- Confusing binary (0b) with hexadecimal (0x)
- Placing the b suffix after the number
- Using octal prefix 0o for binary
Solution
Step 1: Understand underscore usage in numeric literals
Underscores can be placed anywhere between digits to improve readability.Step 2: Check each option for correct grouping
1_000_000groups digits in thousands correctly. Others have irregular grouping which is allowed but uncommon and confusing.Final Answer:
1_000_000 -> Option DQuick Check:
Use underscores to separate thousands = A [OK]
- Placing underscores at the start or end of number
- Using inconsistent grouping that confuses readers
- Thinking underscores change the value
let number = 1.5e2 print(number)
Solution
Step 1: Understand scientific notation in Swift
1.5e2 means 1.5 x 10², which equals 150.0.Step 2: Evaluate the print output
Printing the number shows the decimal value 150.0, not the literal string.Final Answer:
150.0 -> Option AQuick Check:
1.5e2 = 150.0 [OK]
- Thinking print shows the literal string '1.5e2'
- Confusing e2 with e-2 (which divides)
- Assuming integer output instead of floating-point
let value = 0b1021
Solution
Step 1: Check digits allowed in binary literals
Binary literals only allow digits 0 and 1 after the 0b prefix.Step 2: Analyze the given literal
The literal contains digit 2, which is invalid for binary (only 0s and 1s allowed).Final Answer:
Binary literals cannot contain digits other than 0 or 1 -> Option BQuick Check:
Binary digits only 0 or 1 = C [OK]
- Thinking underscores are mandatory
- Confusing binary prefix 0b with hexadecimal 0x
- Assuming floating-point literals can be binary
Solution
Step 1: Convert decimal 255 to hexadecimal
255 decimal equals FF in hexadecimal, so0xFFis correct.Step 2: Convert decimal 255 to octal
255 decimal equals 377 in octal, so0o377is correct.Final Answer:
0xFF and 0o377 -> Option CQuick Check:
255 decimal = 0xFF hex & 0o377 oct [OK]
- Confusing octal digits with decimal digits
- Using decimal digits after 0x prefix
- Mixing up hexadecimal and octal prefixes
Ready to prove it?
Pass the test and this pattern moves unknown
