Study guide

2.2 Hexadecimal & ASCII

U.S. Air Force Cyber Test CSAT/ICTL

Track your progress as you read

Finished sections get a check mark.

1 Introduction & Exam Overview

1.1 Current Exam Facts 1.2 Cyber AFSCs & Qualification Pipeline 1.3 How to Use This Guide & Study Plan

2 Number Systems & Encoding

2.1 Binary & Decimal Conversion 2.2 Hexadecimal & ASCII 2.3 Bitwise Operations & Two's Complement

3 Computing Architecture

3.1 Memory Hierarchy 3.2 CPU, Components & Data Path 3.3 Core Data Structures

4 Boolean Logic & Storage

4.1 Boolean Algebra & Logic Gates 4.2 Encoding, Files & Storage Concepts

5 Networking Models

5.1 OSI Model 5.2 TCP/IP Model & Encapsulation 5.3 Topologies & Transmission Media

6 Addressing & Subnetting

6.1 IPv4 Addressing 6.2 Subnetting & CIDR 6.3 IPv6 Fundamentals

7 Protocols & Network Services

7.1 TCP, UDP & Well-Known Ports 7.2 DNS & DHCP 7.3 Routing & Switching Basics

8 Cybersecurity Foundations

8.1 CIA Triad & Security Goals 8.2 Threats, Vulnerabilities & Malware 8.3 Social Engineering & Human Factors

9 Defensive Controls

9.1 Access Control & Authentication 9.2 Firewalls, IDS & IPS 9.3 SIEM & Defense in Depth

10 Programming Fundamentals

10.1 Variables, Types & Operators 10.2 Control Flow 10.3 Functions & Recursion

11 Languages & Debugging

11.1 Python Essentials for the Cyber Test 11.2 C++ Basics & Debugging Concepts

12 Operating Systems

12.1 Linux Fundamentals & Commands 12.2 Windows Fundamentals 12.3 Processes, Permissions & File Systems

13 Cryptography

13.1 Symmetric Encryption (AES) 13.2 Asymmetric Crypto & PKI 13.3 Hashing, MACs & Integrity

14 ICTL-Style Logic Reasoning

14.1 Deductive Logic & Syllogisms 14.2 Sequences & Pattern Recognition 14.3 Arrangement & Conditional Puzzles

15 Test Strategy & Mixed Review

15.1 Pacing, Elimination & AF Testing Day 15.2 Mixed Domain Review & Next Steps

2.2 Hexadecimal & ASCII

Key Takeaways Explain This Topic AI

Hexadecimal is base-16: digits 0–9 and A–F; each hex digit is exactly one nibble (4 bits)

Convert binary↔hex by grouping bits in fours; convert hex↔decimal via place values 16¹ and 16⁰ (and higher powers for longer values)

ASCII maps characters to numeric codes: space=32, digit '0'=48, uppercase 'A'=65, lowercase 'a'=97

Cyber tooling often shows bytes in hex ( 0x4A , \x41 ); reading those dumps requires fluent nibble grouping

  • Exam traps: confusing ASCII letter codes with hex digit letters; forgetting that '0' is 48 decimal, not zero
  • Last updated: July 2026

Binary is precise but verbose. Hexadecimal (hex) compresses bit patterns into a human-readable form that cyber analysts, packet dumps, and crypto libraries use constantly. ASCII then maps those byte values to printable characters. Together, hex and ASCII let you read what a raw byte stream "means" on the Cyber Test and on the job.

Hexadecimal Basics

Hex is base-16 . Digits run 0–9, then A–F (or a–f) for values 10–15. Prefixes like 0x or suffixes like h mark hex in many notations ( 0xFF , FFh ).

  • Hex digit Decimal Binary (nibble)
  • 0 0 0000
  • 1 1 0001
  • 2 2 0010
  • 3 3 0011
  • 4 4 0100
  • 5 5 0101
  • 6 6 0110
  • 7 7 0111
  • 8 8 1000
  • 9 9 1001
  • A 10 1010
  • B 11 1011
  • C 12 1100
  • D 13 1101
  • E 14 1110
  • F 15 1111

Critical rule: one hex digit ↔ exactly 4 bits (one nibble). Two hex digits ↔ one byte (8 bits). That is why MAC addresses, IPv6 hextets, and hash digests are written in hex — they map cleanly onto bit width.

  • Binary ↔ Hex via Nibble Grouping
  • Binary to hex

Pad the bit string on the left with zeros until the length is a multiple of 4.

Split into nibbles from the right (or left after padding — same groups).

Replace each nibble with its hex digit from the table.

Worked example: Convert 11010110₂ to hex.

  • Groups: 1101 0110
  • 1101 = 13 = D ; 0110 = 6 → 0xD6

Worked example: Convert 10101111001₂ to hex.

  • Pad to 12 bits: 0101 0111 1001
  • 5, 7, 9 → 0x579
  • Hex to binary

Expand each hex digit into its 4-bit pattern. Do not drop leading zeros inside a nibble — 0x0A is 00001010 , not 1010 alone if you need a full byte.

Worked example: 0x3C → 0011 1100 → 00111100₂ = 60₁₀.

Hex to decimal (short values)

For two-digit hex XY : value = (X × 16) + Y.

  • 0xA5 = (10 × 16) + 5 = 160 + 5 = 165
  • 0xFF = (15 × 16) + 15 = 255 (full unsigned byte — same landmark as 11111111₂ )

For three digits XYZ : (X × 256) + (Y × 16) + Z, since 16² = 256.

Why Cyber Candidates Live in Hex

Packet and memory dumps show bytes as hex pairs ( 4F 70 65 6E ).

IPv6 addresses use hex hextets; nibble fluency transfers.

Crypto digests (MD5, SHA-256) are printed as hex strings — each two characters is one byte of the hash.

Bitwise masks in config files often appear as 0xFF00 rather than long binary.

If a dump shows 0x41 , you should instantly think both "65 decimal" and "ASCII 'A'" — that dual reading is the point of this section.

ASCII: Characters as Numbers

ASCII (American Standard Code for Information Interchange) assigns integers to characters so text can travel as bytes. Classic ASCII uses 7 bits (0–127); in practice you see it embedded in 8-bit bytes (high bit often 0).

High-value code points to memorize

  • Character Decimal Hex Binary (8-bit) Notes
  • space 32 0x20 00100000 Word separator; common in parsers
  • '0' 48 0x30 00110000 Digit zero — not numeric value 0
  • '1' 49 0x31 00110001 Digits ascend: '0'+n
  • '9' 57 0x39 00111001 End of digit range
  • 'A' 65 0x41 01000001 Uppercase start
  • 'Z' 90 0x5A 01011010 Uppercase end
  • 'a' 97 0x61 01100001 Lowercase = uppercase + 32
  • 'z' 122 0x7A 01111010 Lowercase end
  • Patterns that save time

Digits: '0' – '9' are 48–57. The character '7' has code 48 + 7 = 55, not 7.

Case shift: lowercase = uppercase + 32. Flipping bit 5 (value 32) often toggles case in ASCII — a bitwise intuition you will reuse in section 2.3.

Letters: 'A' = 65, 'B' = 66, … so 'C' = 67 = 0x43.

Worked examples

What character is ASCII 65? → 'A' .

Byte 0x30 in a text stream? → character '0' (digit zero).

Hex dump 48 69 → decimal 72, 105 → 'H' , 'i' → string "Hi" .

Difference between 'a' and 'A' : 97 − 65 = 32 (one bit in the byte).

Exam Traps

Hex letters vs ASCII letters: Hex digit A means ten. ASCII 'A' means code 65. Context decides.

Character '0' vs value 0: '0' is 48. Numeric zero as a byte is 0x00 (NUL), not the digit character.

Nibble mis-grouping: Grouping 11010110 as 110 10110 instead of 1101 0110 produces wrong hex.

Case in hex digits: 0xaf equals 0xAF ; case of hex letters does not change value. Case of ASCII letters does.

Seven-bit vs eight-bit: Printable ASCII fits in 0–127; a byte 0xC2 is outside classic printable ASCII and often signals UTF-8 or extended sets — do not force it into 'A' – 'Z' logic.

Study drill

Convert random bytes both ways: binary ↔ hex ↔ decimal, then ask "if this were ASCII, what character?" That triple fluency is what CT-style items reward.

Networking and crypto cameo

An Ethernet MAC might read 00:1A:2B:3C:4D:5E — each pair is a hex byte. A truncated SHA-256 preview e3b0c442… is also hex. You are not asked to compute hashes here; you are asked to read the encoding. Hex and ASCII are the shared language of those displays.