Black Crow #03
27 июня 2000

Программистам - Теория: Биты и байты.

                                         
         БИТЫ И БАЙТЫ          
                                         
(С) J.Вurglаr/Lаst Маstеrs               
-----------------------------------------
 Минимальной единицей информации в компь-
ютере  является  БИТ. Бит может быть либо
"выключен",  при  этом его значение равно
нулю,  либо "включен", тогда его значение
равно  единице.  Один бит не обеспечивает
большого количества информации, в отличии
группы битов.                            
   Группа из восьми бит преставляет собой
БА Т.  Эти  биты  обеспечивают основу для
представления  чисел  от 0 до 255. Восемь
бит  дают  256 различных комбинаций вклю-
ченных и выключенных состояний:          
 - от "все выключены"   (00000000)       
 - до "все включены"    (11111111)       
Например:                                
число 5 будет выглядеть так - (00000101),
а число 166 вот так (10100110). По согла-
шению  биты в байте пронумерованы от 0 до
7 справа налево.                         
Номера битов:   7 6 5 4 3 2 1 0          
Значение битов: 1 0 1 0 0 1 1 0 = 166    
                                         
        Двоuчные чucла         
        ==============         
                                         
 Так как компьютер может различить только
нулевое и единичное состояние бита, то он
работает  в  системе с основанием 2 или в
двоичной системе.                        
   Сочетанием двоичных цифр (битов) можно
представить любое значение. Значение дво-
ичного  числа  определяется относительной
позицией  каждого бита и наличием единич-
ных  битов.  Ниже  показано  восьмибитное
число, содержащее некоторые единичные би-
ты:                                      
                                         
       Позuцuонные веcа        
       ================        
                                         
     128 064 032 016 008 004 002 001     
      1   0   1   0   0   1   1   0      
                                         
Для перевода даного двоичного числа в де-
сятичное  надо  сложить числа находящиеся
над  установлеными  битами,  то  есть над
единицами  (128+32+4+2=166). В результате
данная  комбинация битов определяет деся-
тичное число 166.                        
                                         
      Двоuчная арuфметuка      
      ===================      
                                         
  Микропроцессор выполняет арифметические
действия только  в  двоичном формате. По-
этому программируя на ассемблере, необхо-
димо  знать  двоичный  формат  и двоичное
сложение.                                
                                         
         0 + 0 = 0                       
         1 + 0 = 1                       
         1 + 1 = 10                      
     1 + 1 + 1 = 11                      
                                         
  Обратите внимание на перенос единичного
бита  в  последних двух операциях. Теперь
давайте сложим числа 65 и 42:            
                                         
        01000001           65            
        00101010           42            
        ---------         ----           
        01101011          107            
                                         
   Проверьте, что двоичная сумма 01101011
действительно  равна  десятичной 107. Да-
вайте рассмотрим другой пример:          
                                         
        00111100           60            
        00110101           53            
        ---------         ----           
        ........          113            
                                         
   Попробуйте подсчитать сами, и сравните
ответ.                                   
                                         
      Отрuцательные чucла      
      ===================      
                                         
  Отрицательные числа могут быть только в
диапазоне от -127 до 127, так как послед-
ний  7  бит  используется в качестве бита
знака.  Таким  образом, для представления
двоичного отрицательного числа необходимо
инвертировать  все его биты и прибавить к
нему 1. Рассмотрим пример:               
                                         
число 65 :       01000001                
инверсия битов : 10111110                
прибавляем 1 :   10111111 (равно -65)    
                                         
Если сложить весовые значения единиц чис-
ла  10111111,  то 65 не получится. Факти-
чески  двоичное  число  считается отрица-
тельным,  если  его  старший бит равен 1.
Для  представления  абсолютного  значения
отрицательного   двоичного  числа  просто
повторяют  предыдущие операции - инверсия
битов и плюс 1. Для достоверности давайте
сложим -65 и 65.  В результате должен по-
лучиться 0:                              
                                         
         Е01000001      ( 65)            
     +   Е10111111      (-65)            
         ----------     ------           
         Е00000000      (  0)            
                                         
   Все восемь бит имеют нулевое значение.
Перенос  единичного  бита  влево потерян.
Однако если был перенос в знаковый разряд
и из знаковой сетки, то результат являет-
ся корректным.                           
   Двоичное вычитание выполняется просто:
инвертируется  знак вычитаемого и склады-
вается два числа. Вычтем, например, 42 из
65. Двоичное представление числа 42 - это
00101010,   и   его  двоичное  дополнение
11010110:                                
                                         
        01000001    (65)                 
           +          +                  
        11010110    (-42)                
      ----------    ------               
        00010111   ( 23)                 
                                         
 Результат 23 является корректным. В рас-
смотреном  примере  произошел  перенос  в
знаковый разряд и из разрядной сетки.    
                                         
       Шеcтнадцатuрuчное       
         предcтавленuе         
           (клоунов)           
           =========           
                                         
    Эта система счисления включяет в себя
"цифры" от 0 до F и так как этих цифр 16,
она  называется  "шестнадцатиричным пред-
ставлением". Специалисты разработали этот
метод представления  двоичных  данных, по
которому  каждый  байт  делится пополам и
каждые пол-байта выражаются соответствую-
щим  знаком.  Так как для некоторых чисел
требуется две цифры, они расширили систе-
му счисления так, чтобы 10=A, 11=В, 12=С,
13=D, 14=Е, 15=F. Ниже в таблице приведе-
ны двоичные, десятичные и шестнадцатирич-
ные значения чисел от 0 до 15:           
                                         
    двоич.         дес.       шест.      
                                         
    0000            0           0        
    0001            1           1        
    0010            2           2        
    0011            3           3        
    0100            4           4        
    0101            5           5        
    0110            6           6        
    0111            7           7        
    1000            8           8        
    1001            9           9        
    1010           10           A        
    1011           11           В        
    1100           12           С        
    1101           13           D        
    1110           14           Е        
    1111           15           F        
                                         
 Пример:                                 
     число 65 -> 0100 0001 -> 4 1        
                 ---- ----    - -        
 Если немного поработать с этим форматом,
то  можно быстро привыкнуть к нему.  Рас-
смотрим  несколько простых примеров шест-
надцатиричной  арифметики.  Следует  пом-
нить,  что  после  шестнадцатиричного #0F
идёт шестнадцатиричное #10, что равно де-
сятичному 16:                            
                                         
    6     5     F     F     10     FF    
    4     8     1     F     10      1    
    -     -    --    --     --     --    
    A     D    10    1Е     20    100    
                                         
Для различия десятичной формы от шестнад-
цатиричной надо ставить значёк # (#С8).  
                                         
          Поcлеcловuе          
          ===========          
                                         
Если Вы хоть что-то поняли из этой главы,
то  это прогресс, если Вы что-то не допо-
няли, то  перечитайте все с начала. Ну, а
если Вы ни хрена не поняли, то учите луч-
ше ВASIС :-)                             



Другие статьи номера:

От автора - управление, действие иконок в статье, о следующих номерах, связь.

Программистам - Процессор Z380

Программистам - Сборник кодов: зашифровка файла, Эффект точечной сетки, работа с диском при включенных прерываниях, программирование кэша.

Программистам - Теория: Биты и байты.

Очумелые ручки - Реализация кэша.

Очумелые ручки - ZX-дигитайзер: оцифровка видеосигнала.

Очумелые ручки - Всё о HDD IDE: Краткое описание портов и битов.

Белый_попугай - Советы молодожёнам.

Белый_попугай - Поручик Ржевский.

Белый_попугай - О начальстве.

Белый_попугай - Автошкола.

Белый_попугай - Набор приколов.

Раскрутка - Новые группы.

Раскрутка - Алло, таланты!

Раскрутка - Neos

Игротека - Редактор черного ворона и его новые миссии.

Игротека - Прохождение игр: 12 Тайныx Книг, Twillight.

Игротека -Перспективные проекты.

Разное - Наша жизнь компьютерщика.

Разное - Глюкодром.

Разное - Intel outside.

Разное - Почтовый ящик.

Разное - Pidarsoft.

Разное - Реклама.

Комментарий к приложению


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Сетевые новости - Что творится в SpbZxNet ?..
Интервью - Random/Chaos Constructions.
X-Files - Стремление НЛО к контакту.

В этот день...   21 сентября