Page 12 - 4989
P. 12

число,  що  представляється  М  бітами,  завжди  має  вигляд
            послідовності з М одиниць.
                  Для  запису  довільного  цілого  беззнакового  числа  N  в
            двійковому  коді  необхідно  не  менше  log N  двійкових  розрядів
                                                                       2
            (біт).  Наприклад,  представлення  чисел  з  діапазону  0...100
            потребує  не  менше  7  біт,  оскільки    log 100≈6,64.  Щоб  не
                                                                           2
            обчислювати логарифми, можна просто знайти такі два значення

            цілих  степенів  двійки,  щоб  верхня  межа  діапазону  знаходилась
            між ними. Для даного прикладу число 100 знаходиться між 64 і
            128,  тобто  потребує  7  біт  для  представлення.  Дійсно,  100                    (10)   =
            1100100  , тобто число має 7 біт.
                        (2)

                  Таблиця 1.3 – Цілі степені двійки

            М  2  3  4  5  6  7                  8      9      10      11       12      13       14
              М
            2     4  8  16  32  64  128  256  512  1024  2048  4096  8192  16384


                  При зберіганні цілих чисел у пам’яті можливі два варіанти:
            байти  числа  зберігаються  або  починаючи  від  молодшого  і
            закінчуючи  старшим  (little-endian),  або  навпаки  (big-endian).

            Порядок  байтів  визначається  архітектурою  процесора.  У
            процесорах сімейства х86 використовується порядок little-endian,
            тобто,  наприклад,  якщо  змінна  Х  типу  int  дорівнює

            шістнадцятковому  числу  2BCC3D,  то  вона  буде  записана  в
            пам’яті таким чином:

                  адреса         addr(X)         addr(X)+1         addr(X)+2         addr(X)+3

                   дані              3D               CC                2B                 00


                  Порядок  запису  big-endian  використовується,  наприклад,  у
            процесорах  з  архітектурою  SPARC  та  Motorola  68xxx.
            Розташування  байтів  в  пам’яті  для  вищенаведеного  прикладу
            буде таким:


                  адреса         addr(X)         addr(X)+1         addr(X)+2         addr(X)+3
                   дані              00               2B                CC                3D


                  При  зберіганні  знакових  чисел  один  біт  (як  правило,
            найстарший)  використовують  для  зберігання  знаку  (рис.  1.3).


                                                           12
   7   8   9   10   11   12   13   14   15   16   17