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

Numbers in Software

Numbers in Software

Stefan Kanev

August 24, 2013
Tweet

More Decks by Stefan Kanev

Other Decks in Programming

Transcript

  1. CO

  2. 0.5 + 0.5 + 0.5 + 0.5 + 0.5 +

    0.5 + 0.5 + 0.5 + 0.5 + 0.5 = 5.0 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 = 0.999999
  3. 0

  4. 24

  5. 0 = 00000 1 = 00001 2 = 00010 3

    = 00011 4 = 00100 5 = 00101 6 = 00110 . = .....
  6. 0 = 00000 1 = 00001 2 = 00010 3

    = 00011 4 = 00100 5 = 00101 6 = 00110 . = .....
  7. 8 битов BigNumber bigits: 5, 12, 7 5x2562 + 12x2561

    + 7x2560 5x65536 + 12x256 + 7 330759
  8. 0, 1, 2, 3, 4, 5, 6, ... 0, 1,

    -1, 2, -2, 3, -3, ... ↕ ↕ ↕ ↕ ↕ ↕ ↕
  9. 5 = 00000101 -5 = 11111011 3 = 00000011 -3

    = 11111101 0 = 00000000 -1 = 11111111
  10. 1 / 3 = ? Ruby: 0 (integer) Python: 0.33333

    (float) Clojure: 1/3 (rational)
  11. 0, 1, 2, 3, 4, ... ..., -1, ..., 0,

    ..., 1/4, ..., 1/2, ..., 1, ..., 2, ....
  12. 1 a 1 b 1 c – – – +

    + 1 z – + + ... a ≠ b ≠ c ≠ ... ≠ z
  13. 0.5 + 0.5 + 0.5 + 0.5 + 0.5 +

    0.5 + 0.5 + 0.5 + 0.5 + 0.5 = 5.0 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 = 0.999999
  14. Експонента Мантиса Стойност 0 3.14 3.14 x 1 = 3.14

    3 2.71 2.71 x 1000 = 2710 -4 1.5 1.5 x 0.0001 = 0.00015
  15. експонента: -5 — 5 мантиса: 0.00 — 9.99 440 =

    4.40 x 102 0.7 = 7.00 x 10-1 4210 = 4.21 x 103 0.0101 = 1.01 x 10-2 123000 = 1.23 x 105 0.00143 = 1.43 x 10-3 123001 няма представяне 0.00000012 няма представяне 4210 + 0.0101 няма представяне ...въпреки че двете по отделно имат ...ще трябва върне 4210 или 4420
  16. двоично = десетично 0.1 = 0.5 0.01 = 0.25 0.11

    = 0.75 0.001 = 0.125 0.011 = 0.375 0.101 = 0.625 0.111 = 0.875
  17. 0.5 + 0.5 + 0.5 + 0.5 + 0.5 +

    0.5 + 0.5 + 0.5 + 0.5 + 0.5 = 5.0 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 = 0.999999
  18. Float-а дори не е асоциативен: a = 1234.567 b =

    45.67844 c = 0.0004 (a + b) + c != a + (b + c)
  19. Ако ползвате float за пари: - 0.25, 0.50, 0.75 -

    имате грешки - имате +∞ и -∞ пари - имате отрицателни нули - имате NaN
  20. ?

  21. - система за залози на мачове - всеки влиза в

    системата с Х пари - може да заложи Y пари за мач - цялата сума се разделя пропорционално между позналите - парите в системата са константа
  22. Име Сума Залог Васил 10 1 Кирил 30 2 Радо

    20 1 Андрей 20 3 Стефан 10 1 Веселин 10 3 Радо, Стефан и Васил печелят Общата сума е 100 лв Радо взема 50 лв Васил и Стефан вземат по 25 лв
  23. (a + bi) + (c + di) = = a

    + c + bi + di = = (a + c) + (b + d)i (a + bi)(c + di) = = ac + adi + cbi + bdi2 = = ac - bd + adi + cbi = = (ac - bd) + (ad + cb)i