Scientific Notation and Unit Prefixes: A Complete Reference

May 26, 20268 min read

Introduction

Scientific notation is the standard way to express very large or very small numbers concisely. Combined with unit prefixes, it forms the foundation of measurement in science, engineering, and computing.

This guide covers scientific notation syntax, SI prefixes, binary prefixes for computing, engineering notation, and how these concepts appear in programming languages.

Scientific Notation Basics

What is Scientific Notation?

Scientific notation expresses numbers as a product of a coefficient and a power of 10:

a × 10ⁿ

Where:

  • a is the coefficient (1 ≤ |a| < 10, typically)
  • n is the exponent (integer)

Examples

Standard FormScientific NotationSpoken As
3003 × 10²"three times ten squared"
5,0005 × 10³"five times ten cubed"
0.0044 × 10⁻³"four times ten to the negative three"
123,000,0001.23 × 10⁸"one point two three times ten to the eighth"
0.0000007897.89 × 10⁻⁷"seven point eight nine times ten to the negative seventh"

Normalized Scientific Notation

In normalized form, the coefficient is between 1 and 10 (1 ≤ |a| < 10):

Correct:   3.45 × 10⁶
Incorrect: 34.5 × 10⁵  (not normalized)
Incorrect: 0.345 × 10⁷ (not normalized)

Writing Scientific Notation

In Mathematics and Science

3.0 × 10⁸  (using multiplication symbol and superscript)
3.0e8      (using "e" notation, common in computing)
3.0E8      (capital E, equivalent)
3 × 10^8   (using caret for exponent)

In Computing (Programming Languages)

Most programming languages use e or E to denote the exponent:

# Python
speed_of_light = 3.0e8  # 3.0 × 10⁸
planck_constant = 6.626e-34  # 6.626 × 10⁻³⁴

# JavaScript
const avogadro = 6.022e23;

// Java
double electronCharge = 1.602e-19;

// C/C++
float massElectron = 9.109e-31;

SI Prefixes (Metric System)

SI (Système International) prefixes represent powers of 10 and are used with metric units.

Standard SI Prefixes

PrefixSymbolPower of 10DecimalExample
yottaY10²⁴1,000,000,000,000,000,000,000,000YB (yottabyte)
zettaZ10²¹1,000,000,000,000,000,000,000ZB (zettabyte)
exaE10¹⁸1,000,000,000,000,000,000EB (exabyte)
petaP10¹⁵1,000,000,000,000,000PB (petabyte)
teraT10¹²1,000,000,000,000TB (terabyte)
gigaG10⁹1,000,000,000GHz (gigahertz)
megaM10⁶1,000,000MW (megawatt)
kilok10³1,000km (kilometer)
hectoh10²100hPa (hectopascal)
decada10¹10dag (decagram)
10⁰1
decid10⁻¹0.1dB (decibel, special)
centic10⁻²0.01cm (centimeter)
millim10⁻³0.001mm (millimeter)
microμ10⁻⁶0.000001μm (micrometer)
nanon10⁻⁹0.000000001nm (nanometer)
picop10⁻¹²0.000000000001ps (picosecond)
femtof10⁻¹⁵0.000000000000001fs (femtosecond)
attoa10⁻¹⁸0.000000000000000001as (attosecond)
zeptoz10⁻²¹10⁻²¹zs (zeptosecond)
yoctoy10⁻²⁴10⁻²⁴ys (yoctosecond)

Commonly Used SI Prefixes in Computing

PrefixSymbolValueTypical Use
kilok10³kHz, kB (kilobyte, 1000 bytes)
megaM10⁶MHz, MB (megabyte, 10⁶ bytes)
gigaG10⁹GHz, GB (gigabyte, 10⁹ bytes)
teraT10¹²TB (terabyte)
petaP10¹⁵PB (petabyte)
microμ10⁻⁶μs (microsecond)
nanon10⁻⁹ns (nanosecond)
picop10⁻¹²ps (picosecond)

Writing the Micro Symbol (μ)

The micro symbol can be challenging to type. Alternatives:

  • Copy-paste: μ
  • HTML entity: &mu; → μ
  • Unicode: U+00B5
  • LaTeX: \mu
  • In plain text, "u" is sometimes used: um for micrometer

Binary Prefixes (Computing)

Binary prefixes are based on powers of 2, not 10. They're used in computing where memory and storage are addressed in binary.

Why Binary Prefixes Exist

A "kilobyte" in computing traditionally meant 1024 bytes (2¹⁰), not 1000 bytes (10³). This caused confusion, so the IEC introduced binary prefixes in 1998.

Binary Prefix Table

PrefixSymbolPower of 2ValueDecimal Equivalent
kibiKi2¹⁰1,024≈ 1.02 × 10³
mebiMi2²⁰1,048,576≈ 1.05 × 10⁶
gibiGi2³⁰1,073,741,824≈ 1.07 × 10⁹
tebiTi2⁴⁰1,099,511,627,776≈ 1.10 × 10¹²
pebiPi2⁵⁰1,125,899,906,842,624≈ 1.13 × 10¹⁵
exbiEi2⁶⁰1,152,921,504,606,846,976≈ 1.15 × 10¹⁸

SI vs Binary Prefix Comparison

QuantitySI Prefix (10ⁿ)Binary Prefix (2ⁿ)Difference
1000 bytes1 kB (kilobyte)1 KiB (kibibyte)~2.4%
1,000,000 bytes1 MB (megabyte)1 MiB (mebibyte)~4.9%
1,000,000,000 bytes1 GB (gigabyte)1 GiB (gibibyte)~7.4%
1,000,000,000,000 bytes1 TB (terabyte)1 TiB (tebibyte)~10%

Which Should You Use?

  • Storage manufacturers: Use SI prefixes (1 TB = 10¹² bytes) — it makes drives sound bigger
  • RAM/memory: Use binary prefixes (8 GiB = 2³⁰ × 8 bytes) — it's technically correct
  • Network speeds: Use SI prefixes (1 Gbps = 10⁹ bits per second) — standard for networking
  • File sizes in OS: Varies — Windows uses "KB" but means KiB; macOS uses proper SI

Engineering Notation

Engineering notation is a variant of scientific notation where the exponent is a multiple of 3, keeping the coefficient between 1 and 1000.

Why Use Engineering Notation?

It aligns with SI prefixes, making it easier to read engineering values.

Examples

NumberScientific NotationEngineering NotationWith SI Prefix
123,0001.23 × 10⁵123 × 10³123 k
0.004564.56 × 10⁻³4.56 × 10⁻³4.56 m
7,890,0007.89 × 10⁶7.89 × 10⁶7.89 M
0.0000000929.2 × 10⁻⁸92 × 10⁻⁹92 n

Scientific Notation in Programming

Python

# Writing numbers in scientific notation
planck = 6.626e-34
speed_of_light = 3e8

# Converting to/from scientific notation
print(f"{planck:.2e}")  # "6.63e-34"
print(f"{speed_of_light:.2e}")  # "3.00e+08"

# Parsing scientific notation from strings
num = float("1.23e-4")  # 0.000123

# Using with format specifiers
value = 1234567
print(f"{value:e}")  # "1.234567e+06"

JavaScript

// Scientific notation literals
const avogadro = 6.022e23;
const electronMass = 9.109e-31;

// toExponential() method
const num = 1234567;
console.log(num.toExponential(2));  // "1.23e+6"

// Parsing
const parsed = parseFloat("1.23e-4");  // 0.000123

Java

// Scientific notation in literals
double planck = 6.626e-34;

// Formatting
System.out.printf("%.2e%n", planck);  // "6.63e-34"

// Using BigDecimal for precision
BigDecimal precise = new BigDecimal("1.23e-4");

C/C++

// Scientific notation in literals
double speed_of_light = 3.0e8;

// printf formatting
printf("%.2e\n", speed_of_light);  // "3.00e+08"

// Using scientific notation in scanf
double value;
scanf("%le", &value);  // Reads "1.23e-4" format

Common Constants in Scientific Notation

ConstantSymbolValue (Scientific Notation)
Speed of lightc2.998 × 10⁸ m/s
Planck constanth6.626 × 10⁻³⁴ J·s
Gravitational constantG6.674 × 10⁻¹¹ N·m²/kg²
Electron chargee1.602 × 10⁻¹⁹ C
Electron massmₑ9.109 × 10⁻³¹ kg
Avogadro's numberNₐ6.022 × 10²³ mol⁻¹
Boltzmann constantk1.381 × 10⁻²³ J/K
Standard atmosphereatm1.013 × 10⁵ Pa

Practical Examples

Example 1: Converting to Scientific Notation

Convert 0.0000000567 to scientific notation:

  1. Move decimal point 8 places to the right: 5.67
  2. Since we moved right, exponent is negative: 10⁻⁸
  3. Result: 5.67 × 10⁻⁸

Example 2: Converting from Scientific Notation

Convert 3.21 × 10⁵ to standard form:

  1. Move decimal point 5 places to the right: 321000
  2. Result: 321,000

Example 3: Multiplication with Scientific Notation

(2 × 10³) × (3 × 10⁴) = ?

  1. Multiply coefficients: 2 × 3 = 6
  2. Add exponents: 10³ × 10⁴ = 10⁷
  3. Result: 6 × 10⁷

Example 4: Computing Context

A hard drive is 2 TB (SI) vs 2 TiB (binary):

  • 2 TB = 2 × 10¹² = 2,000,000,000,000 bytes
  • 2 TiB = 2 × 2⁴⁰ = 2,199,023,255,552 bytes
  • Difference: ~199 billion bytes (~199 GB "missing" in SI)

Quick Reference

Powers of 10 (Memorize These)

10⁻³ = 0.001 = milli (m)
10⁻² = 0.01 = centi (c)
10⁻¹ = 0.1 = deci (d)
10⁰ = 1
10¹ = 10 = deca (da)
10² = 100 = hecto (h)
10³ = 1000 = kilo (k)
10⁶ = 1,000,000 = mega (M)
10⁹ = 1,000,000,000 = giga (G)
10¹² = 1,000,000,000,000 = tera (T)

Powers of 2 (Computing)

2¹⁰ = 1,024 ≈ 10³ (kibi)
2²⁰ = 1,048,576 ≈ 10⁶ (mebi)
2³⁰ = 1,073,741,824 ≈ 10⁹ (gibi)
2⁴⁰ ≈ 10¹² (tebi)