% 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/