These videos explain how numbers, characters and pointers are represented in the bits, bytes and words of computer memory. Topics include:

• Binary numbers and the hexadecimal number system

• Two's complement signed number representation

• Single and double precision IEEE floating point number representation

• Logical operations on bit strings (AND, OR, NOT, XOR, SHIFT)

• ASCII, Unicode, UTF-8, and UTF-16 character encodings

Although we do not assume any Computer Science background, these videos move quickly and cover the topics in complete detail. Every Computer Science student should learn this material and every serious systems programmer will fully grasp this knowledge. In places, the "C" programming language and IA-32 assembly language are mentioned, but no prior knowledge is assumed.

Bits and Binary Numbers (13 mins)

Bits and data representation; introduction to binary numbers; 8 bit numbers; 32 bit numbers; counting in binary

Number Bases and Hexadecimal Numbers (33 mins)

Base 10 number system; hexadecimal numbers and base 16; base 2; conversions between hex, binary, and decimal

Bits, Bytes, and Words (15 mins)

Standard word sizes; using hex to represent bit patterns; octal numbers; data sizes in "C"

Signed and Unsigned Numbers (18 mins)

Unsigned numbers; two's complement signed number representation; sign bit; ranges of common data types

Sign Extension (31 mins)

Sign extension; changing the size of data; conversions between signed and unsigned; casting in "C"; potential bugs

Arithmetic Operations (27 mins)

Binary addition, subtraction, etc; negation; overflow conditions

Storing Numbers in Memory and Byte Ordering (18 mins)

Byte addressable memory; big and little endian byte ordering; example C code

Data Alignment (4 mins)

Aligning data in memory

Floating Point Numbers (35 mins)

Binary fixed point; IEEE single and double precision floating point formats; not-a-number; denormalized numbers

Logical Functions (21 mins)

Logical operations (AND, OR, XOR, NOT); masking operations; arithmetic and logical shifts; compare; IA-32 examples

Pointers (39 mins)

Pointers; dereferencing and addressing; pointer types and operations in "C"; arrays; pointer arithmetic

ASCII and Unicode (48 mins)

The ASCII character set; character encoding; Unicode; UTF-8, UTF-16, and UTF-32 encoding details

Produced on a Mac; MPEG-4; H.264; Millions; AAC; 2 channels; 32000 Hz; FPS: 23.98.

640 x 360; Data rate: about 350 kbit/s

- Send email to: porter@pdx.edu
- Harry Porter's Web Page: www.cs.pdx.edu/~harry