Introduction to Binary

Introduction to Binary

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 { .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    56 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us