Numeric literals let you write numbers directly in your code. They help you tell the computer exact values to use.
Numeric literal formats in Swift
let decimal = 1234 let binary = 0b1001 let octal = 0o17 let hex = 0x1F let floatNum = 12.34 let expNum = 1.2e3 let readableNum = 1_000_000
Numeric literals can be decimal, binary (start with 0b), octal (0o), or hexadecimal (0x).
Underscores (_) can be used inside numbers to improve readability without changing the value.
let decimal = 42
let binary = 0b1010
let hex = 0xFF
let largeNumber = 1_000_000
This program shows different numeric literal formats in Swift and prints their decimal values.
import Foundation let decimal = 100 let binary = 0b1100100 let octal = 0o144 let hex = 0x64 let floatNum = 123.45 let expNum = 1.2345e2 let readableNum = 1_000_000 print("Decimal: \(decimal)") print("Binary: \(binary)") print("Octal: \(octal)") print("Hexadecimal: \(hex)") print("Float: \(floatNum)") print("Exponential: \(expNum)") print("Readable number: \(readableNum)")
All numeric literals represent the same value regardless of format when printed as decimal.
Floating-point literals can use decimal points or exponential notation.
Underscores do not affect the value but help you read large numbers easily.
Numeric literals let you write numbers in decimal, binary, octal, or hexadecimal.
You can use underscores to make numbers easier to read.
Floating-point numbers can be written with decimals or scientific notation.
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
