CS208, Monday 17 Jan 2022
Zooming
- The Zoom link for the course (office hours + in-class + day-to-day short Zoom calls) is on my office hours page
Questions about queues assignment
- q_reverse?
- anything else?
- what's the difference between "char buffer[]" and "char *"?
- strcpy vs. strncpy vs. strlcpy
What do I want you to know so far?
- C programming basics
- Pointers and linked structures in C
- Integers: binary, octal, decimal, hexadecimal representations
- Integers: two's complement representation, including addition and negation
- Byte order (little-endian and big-endian)
- Characters: standards, codepoints, and encodings (see below)
Next assignments
- Quiz on C and data representation, due Thursday 1/20
- Problem set on bitwise operations and x86 and C, due Monday 1/24
- Reverse engineering assignment, due Thursday 1/27
Characters
- Standards organizations (IEEE, ANSI, NIST, IETF, ISO, W3C, ITU,...)
- History: EBCDIC, ASCII, Unicode
- Codepoints & the U+XXXX notation
- Codepoints vs. encodings
- UCS-2 and UTF-16
- UTF-16 LE vs. UTF-16 BE
- UTF-8
- An encoding helper
- BOM (0xfeff)
Bit operations in C
- NOT, OR, AND, XOR as logical operations
- logical identities like DeMorgan's Laws
- "bitwise" logical operations
- ~, |, &, ^ in C
Next
- x86 assembly language: architecture and some simple code
- back and forth between x86 and C: what is the compiler up to?