Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jak postavit slovník z jedniček a nul

Petr Viktorin
September 29, 2016

Jak postavit slovník z jedniček a nul

Slajdy k začátačnické přednášce o jedničkách a nulách, a o počítačové paměti.

Petr Viktorin

September 29, 2016
Tweet

More Decks by Petr Viktorin

Other Decks in Technology

Transcript

  1. Jak postavit slovník
    z jedniček a nul
    Petr Viktorin
    encukou.cz
    [email protected]
    Brněnské Pyvo, 2016-09-29

    View Slide

  2. 0 1

    View Slide

  3. 0V 3V
    Image © Eric Gaba, Wikimedia Commons user Sting, CC-BY-SA: https://en.wikipedia.org/wiki/File:Cyrix_IBM_CPU_6x86MX_PR20

    View Slide


  4. View Slide

  5. S J

    View Slide

  6.  

    View Slide

  7.  

    View Slide

  8.  ♀

    View Slide

  9.  

    View Slide

  10. ♥ 
    Image © Wikimedia user Quartl, CC-BY-SA: https://commons.wikimedia.org/wiki/File:Leucanthemum_vulgare_qtl1.jpg

    View Slide

  11. ☼ 

    View Slide

  12. 0 1

    View Slide

  13. Bude zítra
    pršet?

    View Slide

  14. Bude zítra
    pršet?
     Ano

    View Slide

  15. Bude zítra
    pršet?
     Ano
     Ne

    View Slide

  16. Bude zítra
    pršet?
     Ano
     Ne
     Nevím

    View Slide

  17. Bude zítra
    pršet?
     Ano
     Ne
     Nevím
     S 40% pravděpodobností

    View Slide

  18. Bude zítra
    pršet?
     Ano
     Ne
     Nevím
     S 40% pravděpodobností
     Myslíš v Brně?

    View Slide

  19. Bude zítra
    pršet?
     Ano
     Ne
     Nevím
     S 40% pravděpodobností
     Myslíš v Brně?
     Podle jakého modelu?

    View Slide

  20. Umíš odpovědět „ano” nebo „ne”
    na otázku „Bude zítra pršet?”

    View Slide

  21. Umíš odpovědět „ano” nebo „ne”
    na otázku „Bude zítra pršet?”

    Bude zítra pršet?

    View Slide

  22. Umíš odpovědět „ano” nebo „ne”
    na otázku „Bude zítra pršet?”

    Bude zítra pršet?

    Aha...
    A je to tím
    že to nevíš
    přesně?

    View Slide

  23. Kolik je mi let?

    View Slide

  24. Kolik je mi let?
    50

    View Slide

  25. Kolik je mi let?
    50

    View Slide

  26. Kolik je mi let?
    50

    25

    View Slide

  27. Kolik je mi let?
    50

    25

    View Slide

  28. Kolik je mi let?
    50

    25

    35

    View Slide

  29. Kolik je mi let?
    50

    25

    35

    View Slide

  30. Kolik je mi let?
    50

    25

    35

    30

    View Slide

  31. Kolik je mi let?
    50

    25

    35

    30

    View Slide

  32. Kolik je mi let?
    50

    25

    35

    30
    27

    View Slide

  33. Kolik je mi let?
    50

    25

    35

    30
    27

    View Slide

  34. Kolik je mi let?
    50

    25

    35

    30
    27
    29

    View Slide

  35. Kolik je mi let?
    50

    25

    35

    30
    27
    29

    View Slide

  36. Kolik je mi let?
    50

    25

    35

    30
    27
    29
    28

    View Slide

  37. Kolik je mi let?
    50

    25

    35

    30
    27
    29
    28

    View Slide

  38. Myslím si číslo

    View Slide

  39. Myslím si číslo
    2

    View Slide

  40. Myslím si číslo
    2
    4

    View Slide

  41. Myslím si číslo
    2
    4
    8

    View Slide

  42. Myslím si číslo
    2
    4
    8
    16

    View Slide

  43. Myslím si číslo
    2
    4
    8
    16
    32

    View Slide

  44. Myslím si číslo
    2
    4
    8
    16
    32
    64

    View Slide

  45. Myslím si číslo
    2
    4
    8
    16
    32
    64
    128

    View Slide

  46. Kolik mi je let?
    64-127? ne
    32-63? ne
    16-31? ano
    24-31? ano
    28-31? ano
    30-31? ne
    29? ano

    View Slide

  47. Kolik mi je let?
    ne ne ano ano ano ne ano

    View Slide

  48. Kolik mi je let?
    0 0 1 1 1 0 1

    View Slide

  49. Kolik mi je let?
    0 +64
    0 +32
    1 +16
    1 +8
    1 +4
    0 +2
    1 +1

    View Slide

  50. Nejen čísla
    00001 = 1 = A
    00010 = 2 = B
    00011 = 3 = C
    ...
    11010 = 26 = Z

    View Slide

  51. 8 bitů
    0-255
    © Wikimedia user Bilby, CC-BY-SA: https://en.wikipedia.org/wiki/File:Atari_800.jpg

    View Slide

  52. 16 bitů
    0-65 535
    © Dragan at the German language Wikipedia, CC-BY-SA: https://commons.wikimedia.org/wiki/File:Amiga_500_(1987).jpg

    View Slide

  53. 32 bitů
    0-4 294 967 295
    Public Domain image: https://en.wikipedia.org/wiki/File:Beige_Power_Macintosh_G3_Minitower.jpg

    View Slide

  54. 64 bitů
    0-18 446 744 073 709 551 615
    © Anderson Silva, CC-BY-SA: https://opensource.com/life/15/8/beautiful-super-thin-laptop-makes-fedora-shine

    View Slide

  55. 8 bitů = 1 byte

    View Slide

  56. 0 1 2 3 4 5
    00000000 00000000 00000000 00000000 00000000 00000000

    View Slide

  57. 29
    0 1 2 3 4 5
    00000000 00011101 00000000 00000000 00000000 00000000

    View Slide

  58. 29 'P'
    0 1 2 3 4 5
    00000000 00011101 01010000 00000000 00000000 00000000

    View Slide

  59. 29 'P'
    0 1 2 3 4 5
    00000000 00011101 01010000 00101110 00000000 00000000

    View Slide

  60. 29 'P' ○
    0 1 2 3 4 5
    00000000 00011101 01010000 00101110 00111100 00000000

    View Slide

  61. 29 'P' ○
    0 1 2 3 4 5
    00000000 00011101 01010000 00101110 00111100 00000000
    29 80 46 60

    View Slide

  62. 29 'P' ○
    0 1 2 3 4 5
    00000000 00011101 01010000 00101110 00111100 00000000
    29 80 46 60
    '' 'P' '.' '

    View Slide

  63. 29 'P' ○
    0 1 2 3 4 5
    00000000 00011101 01010000 00101110 00111100 00000000
    29 80 46 60
    '' 'P' '.' '

    View Slide

  64. 29 'P' ○
    0 1 2 3 4 5
    00000000 00011101 01010000 00101110 00111100 00000000
    29 80 46 60
    '' 'P' '.' '○ ○ ○ ○

    View Slide

  65. 0 1 2 3 4 5 6
    00000000 00000000 01000001 01101000 00111100 01101111 00000000
    65 104 111 106 0
    'A' 'h' 'o' 'j' 

    View Slide

  66. 0 1 2 3 4 5 6
    00000000 00000004 01000001 01101000 00111100 01101111 00000000
    4 65 104 111 106 0
    délka 'A' 'h' 'o' 'j' 

    View Slide

  67. 0 1 2 3 4 5 6
    10010010 00000004 01000001 01101000 00111100 01101111 00000000
    146 4 65 104 111 106 0
    str délka 'A' 'h' 'o' 'j' 

    View Slide

  68. 0 1 2 3 4 5 6
    10010010 00000004 01000001 01101000 00111100 01101111 00000000
    146 4 65 104 111 106 0
    str délka 'A' 'h' 'o' 'j' 
    146 147 148 149 150 151 152
    10011010 11101100 11001111 11001100 11011010 11100011 10101101
    type ... ... ... ...

    View Slide

  69. A
    B
    C
    D
    E
    F
    G
    H
    0 1 2 3 4 5 6 7

    View Slide

  70. A str 4 'A' 'h' 'o' 'j' 
    B
    C
    D
    E
    F
    G
    H
    0 1 2 3 4 5 6 7
    A0: "ahoj"

    View Slide

  71. A str 4 'A' 'h' 'o' 'j' 
    B int 1 0 int 1 1
    C
    D
    E
    F
    G
    H
    0 1 2 3 4 5 6 7
    A0: "ahoj"
    B0: 0
    B4: 1

    View Slide

  72. A str 4 'A' 'h' 'o' 'j' 
    B int 1 0 int 1 1
    C tupl 2 B0 B4
    D
    E
    F
    G
    H
    0 1 2 3 4 5 6 7
    A0: "ahoj"
    B0: 0
    B4: 1
    C0: (0, 1)

    View Slide

  73. A str 4 'A' 'h' 'o' 'j' 
    B int 1 0 int 1 1
    C tupl 2 B0 B4 int 1 2
    D
    E
    F
    G
    H
    0 1 2 3 4 5 6 7
    A0: "ahoj"
    B0: 0
    B4: 1
    C0: (0, 1)
    C5: 2

    View Slide

  74. A str 4 'A' 'h' 'o' 'j' 
    B int 1 0 int 1 1
    C tupl 2 B0 B4 int 1 2
    D lst 3 E4
    E B0 B4 C5 
    F
    G
    H
    0 1 2 3 4 5 6 7
    A0: "ahoj"
    B0: 0
    B4: 1
    C0: (0, 1)
    C5: 2
    D0: [0, 1, 2]

    View Slide

  75. A str 4 'A' 'h' 'o' 'j' 
    B int 1 0 int 1 1
    C tupl 2 B0 B4 int 1 2
    D lst 4 F1
    E B0 B4 C5 
    F B0 B4 C5 B0 
    G
    H
    0 1 2 3 4 5 6 7
    A0: "ahoj"
    B0: 0
    B4: 1
    C0: (0, 1)
    C5: 2
    D0: [0,1,2,0]

    View Slide

  76. A
    B
    C
    D
    E
    F
    G
    H
    0 1 2 3 4 5 6 7

    View Slide

  77. A
    B
    C
    D dict 4 8 F0
    E
    F 0 1 2 17
    G → 0 → 1 → 2 → 17
    H → 'a' → 'b' → 'c' → 'd'
    0 1 2 3 4 5 6 7
    D0: {
    0: 'a',
    1: 'b',
    2: 'c',
    17: 'd'}

    View Slide

  78. ?
    Petr Viktorin
    @encukou.cz
    [email protected]
    @encukou
    github.com/encukou
    Licence:
    Creative Commons Attribution-ShareAlike 4.0
    http://creativecommons.org/licenses/by-sa/4.0/

    View Slide