% Author: Ian! D. Allen - idallen@idallen.ca - www.idallen.com % Date: Winter 2011 - January to April 2011 - Updated 2011-03-26 15:49 EDT % Title: Week 06 Notes for CST8281 - Winter 2011 - [Course Home Page] - [Course Outline] - [All Weeks] - [Plain Text] Final Exam Schedule Posted ========================== - The Final Exam date is posted on the [Course Home Page]. - For full mark credit, read the [Test Instructions] for important directions on how to enter your answers on the mark-sense forms. Lecture Notes for This Week =========================== From the Class Notes link on the Course Home Page ------------------------------------------------- - [Course Home Page] - [All Weeks] - [Assignment #06] - Submit midterm test corrections - [120_CharacterEncoding.html] - Character Encoding / Line Ends - [130_big_picture.txt] - The Big Picture on Bit Patterns From Blackboard Course Documents -------------------------------- These documents have restricted distribution and cannot be put on the [Course Home Page]. - [02.ppt] - Data Representation - Character encoding: ASCII, Unicode, Line Endings - [03.ppt][02.ppt] - Boolean Algebra and Digital Logic - ignore Digital Logic and slides 19-73, 75-76 - Boolean Algebra From the Internet ----------------- - Valentine’s Day: - Enter this: **`x^2plus(y-(cuberoot(x^2)))^2=1`** - - - - - - a joint ISO and IEC series of standards for 8-bit character encodings - - The ISO 8859 Alphabet Soup - - - - Bitwise Operators in Java - From the Classroom Whiteboard/Chalkboard ---------------------------------------- - Your in-class notes go here. - Review: Famous ASCII characters: `0D 0A 20 30 41 61 7F` - Problems with all the 8-bit extended-ASCII character sets - can’t have Latin1 French and Latin2 Polish in the same text file: why? - UTF-8 advantages and disadvantages - same as ASCII, no endian-ness, multi-byte, full Unicode, may require more bytes than Unicode - Shifting numbers right and left - shifiting effect on two’s complement numbers: does it work? - Arithmetic Right Shift vs. Logical Right Shift - duplicate the top (carry) bit for Arithmetic Right Shift - F4240h = 1,000,000(10) - so F42400h = 1,000,000 * 16 = 16,000,000 - so F424h = 1,000,000/16 = 1000000 * 0.0625 = 100 * 625 = 62,500 - 03641100(8) = 1,000,000(10) - so 036411000 = 1,000,000 * 8 = 8,000,000 - 1010(2) = 10(10) - so 101000 = 10 * 2 * 2 = 40 - Bitwise Operators AND, OR, XOR, NOT (in Java: `& | ^ ~`) - don’t confuse bitwise with logical: `&` with `&&`, `|` with `||`, or `~` with `!` - if x=1, y=2 then x&y = 0 (no bits in common) - if x=6, y=12 then x&y = 4 (one bit in common) - XOR is *Exclusive OR* - A or B but *not* both - true OR true is true - true XOR true is false - **Note**: All integer types in Java are signed (except char)! - see - Java has a special unsigned (“logical”) right shift operator: `>>>` - need to use bit masking for unsigned arithmetic - Conversions between upper/lower in ASCII using bitwise OR and AND: - `'A' | ' ' = 'a'` (OR turns on the 20h bit, making it lower-case) - `'a' & ~' ' = 'A'` (AND turns off the 20h bit, making it upper-case) - Simplifying complex logic using Boolen Algebra - identities - deMorgan 1. simplify: `if ((x < y) && (y < z))` `||` `((x < y) && (y >=z ))` - simplifies to just `if (x < y)` because: - let `a = (x=z)` - rewrite `ab+ab' = a(b+b') = a(1) = a = (x 120` and `amount > 0` 1. simplify: print unless **stale** - *unless stale* means **if NOT** *stale* - `print if NOT` `(date > 120 && amt > 0)` - using deMorgan: `print if` `(date <= 120 || amt <= 0)` 2. simplify: `print unless` `(stale and amt < 0)` - `print if NOT` `(stale && amt < 0)` - `print if` `( !stale || amt >= 0)` - `print if` `( date <= 120 || amt <= 0 || amt >= 0)` - `print if` `( date <= 120 || TRUE )` - therefore: always print (probably an error in the specifications!) 3. Show that `(xy + x'z + yz')' = y'(x+z')` - `(x'+y')(x+z')(y'+z) -`- deMorgan - `(x'x + x'z' + xy' + y'z')(y'+z) -`- expand first two expressions - `( 0 + x'z' + xy' + y'z')(y'+z) -`- identities - `x'y'z' + x'z'z + xy'y' + xy'z + y'y'z' + y'z'z -`- expand again - `x'y'z' + 0 + xy' + xy'z + y'z' + 0 -`- identities - `x'y'z' + y'z' + xy' + xy'z -`- regroup similar terms - `y'z' + xy' -`- absorption rule - `y'(x+z') -`- QED -- | Ian! D. Allen - idallen@idallen.ca - Ottawa, Ontario, Canada | Home Page: http://idallen.com/ Contact Improv: http://contactimprov.ca/ | College professor (Free/Libre GNU+Linux) at: http://teaching.idallen.com/ | Defend digital freedom: http://eff.org/ and have fun: http://fools.ca/ [Plain Text] - plain text version of this page in [Pandoc Markdown] format [Course Home Page]: .. [Course Outline]: 2010-2011_CST8281.pdf [All Weeks]: indexcgi.cgi [Plain Text]: week06notes.txt [Test Instructions]: 000_test_instructions.html [Assignment #06]: assignment06.txt [120_CharacterEncoding.html]: 120_CharacterEncoding.html [130_big_picture.txt]: 130_big_picture.txt [02.ppt]: http://blackboard.algonquincollege.com/ [Pandoc Markdown]: http://johnmacfarlane.net/pandoc/