Introduction to Binary Why Bother with Binary? ● This is all about electronics ● We don’t use binary because electronics do ● We designed electronics to use binary because it is very easy to do so ● Trying to use decimal inside electronics would be crazy difficult Why Bother with Binary? ● Operations are easy in electronics (just wait!) ● Binary numbers can be used to represent anything Why Bother with Binary? ● Operations are easy in electronics (just wait!) ● Binary numbers can be used to represent anything – Numbers! Why Bother with Binary? ● Operations are easy in electronics (just wait!) ● Binary numbers can be used to represent anything – Numbers! π = 3.1415926535 [and more!] Why Bother with Binary? ● Operations are easy in electronics (just wait!) ● Binary numbers can be used to represent anything – Numbers! π = 3.1415926535 [and more!] – Words “To be, or not to be!” – Pictures – Videos Why Bother with Binary? ● Operations are easy in electronics (just wait!) ● Binary numbers can be used to represent anything – Numbers! π = 3.1415926535 [and more!] – Words “To be, or not to be!” – Pictures – Videos – Programs (like games!) Number Systems ● Ways to organize and write numbers ● Set of digits ● Set of operations – Addition – Subtraction Number Systems – Decimal ● Digits – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ● Operations – Addition ( 3 + 5 ) – Subtraction ( 5 – 3 ) Number Systems – Decimal ● Written Form ● Every “place” is 10 times the place to the right Number 1000 100 10 1 17 0 0 1 7 51 0 0 5 1 5281 5 2 8 1 Number Systems – Decimal ● What’s going on, here? Number 1000 100 10 1 5281 5 2 8 1 1000 * 5 + 100 * 2 + 10 * 8 + 1 * 1 = 5281 Number Systems – Binary ● Digits – 0, 1 ● Operations – Addition ( 011 + 101 ) – Subtraction ( 101 – 011 ) – Fun new things (and, or, not, xor) Number Systems – Binary States can be easily represented in electronics Off On False True 0 1 Number System - Binary ● Written Form ● Every “place” is twice the place to the right Number 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 17 0 0 0 0 0 0 0 0 1 0 0 0 1 51 0 0 0 0 0 0 0 1 1 0 0 1 1 5281 1 0 1 0 0 1 0 1 0 0 0 0 1 Number Systems – Binary ● Same number as before Number 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 5280 1 0 1 0 0 1 0 1 0 0 0 0 1 1000000000000 + 0010000000000 + 0000010000000 + 0000000100000 + 0000000000001 = 1010010100001 Familiar Numbers ● Decimal: 25 Number 1000 100 10 1 25 0 0 2 5 10 * 2 + 1 * 5 25 ● Binary: 11001 Number 128 64 32 16 8 4 2 1 11001 0 0 0 1 1 0 0 1 10000 + 01000 + 00001 11001 Converting to Binary Decimal 128 64 32 16 8 4 2 1 Binary 29 0 0 0 1 1 1 0 1 00011101 31 32 33 100 111 125 Binary Numbers ● Just another way to “write” the numbers you see every day Numbers with Meaning ● How do we represent words in computers? Numbers with Meaning ● How do we represent words in computers? Numbers! Numbers with Meaning ● How do we represent words in computers? Numbers! (Bet you didn’t see what one coming...) ASCII ● American Standard Code for Information Interchange ● A special set of numbers to represent letters ● All letters have a number assigned to them ASCII Letter Decimal Binary Pattern Letter Decimal Binary Pattern A 65 01000001 □■□□□□□□■□■□□□□□■ O 79 01001111 □■□□■■■■ B 66 01000010 □■□□□□□□■□■□□□□■□ P 80 01010000 □■□■□□□□ C 67 01000011 □■□□□□□□■□■□□□□■■ Q 81 01010001 □■□■□□□■ D 68 01000100 □■□□□□□□■□■□□□■□□ R 82 01010010 □■□■□□■□ E 69 01000101 □■□□□■□■ S 83 01010011 □■□■□□■■ F 70 01000110 □■□□□■■□ T 84 01010100 □■□■□■□□ G 71 01000111 □■□□□■■■ U 85 01010101 □■□■□■□■ H 72 01001000 □■□□■□□□ V 86 01010110 □■□■□■■□ I 73 01001001 I 73 01001001 □■□□■□□■ W 87 01010111 □■□■□■■■ J 74 01001010 J 74 01001010 □■□□■□■□ X 88 01011000 □■□■■□□□ K 75 01001011 K 75 01001011 □■□□■□■■ Y 89 01011001 □■□■■□□■ L 76 01001100 L 76 01001100 Z 90 01011010 M 77 01001101 □■□□■■□□ □■□■■□■□ M 77 01001101 □■□□■■□■ ! 33 00100001 □□■□□□□■ N 78 01001110 ON 7978 0100111101001110 □■□□■■■□ ? 63 00011111 □□□■■■■■ Making Words From Letters ● How do we write our ABCs? Making Words From Letters ● How do we write our ABCs? ● Like this: □■□□□□□■□■□□□□■□□■□□□□■■ Making Words From Letters ● How do we write our ABCs? ● Like this: □■□□□□□■□■□□□□■□□■□□□□■■ ● How about XYZ? Making Words From Letters ● How do we write our ABCs? ● Like this: □■□□□□□■□■□□□□■□□■□□□□■■ ● How about XYZ? ● Like this: □■□■■□□□□■□■■□□■□■□■■□■□ Can You Write Your Initials? Letter Decimal Binary Pattern Letter Decimal Binary Pattern A 65 01000001 □■□□□□□■ O 79 01001111 □■□□■■■■ B 66 01000010 □■□□□□■□ P 80 01010000 □■□■□□□□ C 67 01000011 □■□□□□■■ Q 81 01010001 □■□■□□□■ D 68 01000100 □■□□□■□□ R 82 01010010 □■□■□□■□ E 69 01000101 □■□□□■□■ S 83 01010011 □■□■□□■■ F 70 01000110 □■□□□■■□ T 84 01010100 □■□■□■□□ G 71 01000111 □■□□□■■■ U 85 01010101 □■□■□■□■ H 72 01001000 □■□□■□□□ V 86 01010110 □■□■□■■□ I 73 01001001 □■□□■□□■ W 87 01010111 □■□■□■■■ J 74 01001010 □■□□■□■□ X 88 01011000 □■□■■□□□ K 75 01001011 □■□□■□■■ Y 89 01011001 □■□■■□□■ L 76 01001100 □■□□■■□□ Z 90 01011010 □■□■■□■□ M 77 01001101 □■□□■■□■ ! 33 00100001 □□■□□□□■ N 78 01001110 □■□□■■■□ ? 63 00011111 □□□■■■■■ Bonus ● Can you decode the binary code on my shirt? Arithmetic in Binary ● Easy – You only need to know how to add 0 and 1 ● Hardest operation you ever have to do is 1 + 1 – Hint: the answer isn’t “2” Addition – Decimal ● 2 + 2 = ● 2 + 8 = ● 7 + 8 = Addition – Binary ● 0 + 0 = ● 0 + 1 = ● 1 + 0 = ● 1 + 1 = Addition – Binary ● 10 + 10 = ( 2 + 2 ) ● 10 + 1000 = ( 2 + 8 ) ● 111 + 1000 = ( 7 + 8 ) ● 10110 + 01011 = ( 22 + 11 ) Funny Operators ● And – 0 ∧ 0 = 0 – 0 ∧ 1 = 0 – 1 ∧ 0 = 0 – 1 ∧ 1 = 1 ● Or – Programs in Binary ● Everything in a computer is represented with binary numbers ● Programs in a computer are (of course!) represented in binary numbers Programs in Binary ● Instructions – List of things you can do ● Program – List of instructions, in order ● Storage – Instructions, encoded into binary, in the computer’s memory Programs in Binary - Instructions ● Human Robots – Just like our first week in Coding Club – Can move forward – Can turn right – Can turn left Programs in Binary ● Program – Move forward – Move forward – Turn left – Move forward – Turn right – Move forward – etc. Programs in Binary ● Instructions .. in binary! – We have 3 instructions – We will need two “bits” for each instruction – 2 bits can represent 0, 1, 2, or 3 in decimal – We only need 3 of these 4; one of them will be unused Programs in Binary ● Instructions .. in binary! – Turn left: 01 – Turn right: 10 – Move forward: 11 Programs in Binary ● Program ● Instructions – Move forward – 11 – Move forward – 11 – Turn left – 01 – Move forward – 11 – Turn right – 10 – Move forward – 11 – etc. – etc. Programs in Binary ● Program in computer memory – 111101111011 or – ■■■■□■■■■□■■ How Does a Computer Run a Program? ● Program is in memory – ■■■■□■■■■□■■ ● Computer knows all instructions are 2-bits wide ● Computer starts at the beginning – Read 2 bits – Decide which instruction is represented – Perform instruction (e.g. turn, move) – Repeat Complicated Programs ● Human Robots – Limited to turn, move ● Real Computer Programs – Can do much more Complicated Programs ● Perform arithmetic ● Make decisions ● Run loops ● Load/store information Complicated Programs ● Require lots of instructions ● Examples: – load, store – add, subtract – compare – jump! Complicated Programs ● Instructions ● Instructions – Load – 0001 – Add – 0011 – Jump – 0101 – Jump-if-equal – 0110 Complicated Programs ● Instructions ● Instructions ● Extra – Load – 0001 – What? – Add – 0011 – What? – Jump – 0101 – Where? – Jump-if- – 0110 – What/Where equal ? Let’s Count to Ten ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal Let’s Count to Ten ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal 0001 0000 0011 0001 0110 1010 0101 0101 0101 Let’s Count to Ten ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal 0001 0000 0011 0001 0110 1010 0101 0101 0101 code code code code Let’s Count to Ten ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal 0001 0000 0011 0001 0110 1010 0101 0101 0101 data data data data data Complicated Programs ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal 0001 0000 0011 0001 0110 1010 0101 0101 0101 data data data data data ? Complicated Programs ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal 0001 0000 0011 0001 0110 1010 0101} 0101 0101 data data data data data Complicated Programs ● Instructions ● Instructions ● Extra – Load – 0001 – 0000 – Add – 0011 – 0001 – Jump – 0101 – 0101 – Jump-if- – 0110 – 1010 equal 0001 0000 0011 0001 0110 1010 0101} 0101 0101 code data code data code data data code data { .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages56 Page
-
File Size-