Системы счисления

от admin
12-02-2011
ОСНОВЫ РЕЕСТРА
Нет коммент.


Помимо известной нам со школы десятичной системы счисления  существуют также двоичная, использующая только две цифры — 0 и 1,  восьмеричная (цифры от 0 до 7) и шестнадцатеричная. В реестре Windows активно используются только две: десятичная и шестнадцатеричная. С первой  системой мы все знакомы, тогда как вторая, вероятно, нуждается в некоторых пояснениях.

В десятичной системе используются десять цифр: от 0 до 9, поэтому она и называется десятичной. Если вы не прогуливали уроки математики в  школе, то должны знать, что любое N-значное десятичное число можно  представить следующим образом:

А = А1 х 10N-1 + А2 х 10N-2 + ... + AN x 10°.

Исходя из этой формулы, можно написать более общее выражение,

подходящее для любой системы счисления:

А = А1 х BN-1 + А2 х BN-2 + ... + AN x B°.

где В (от base) — это основа системы счисления. В случае с десятичной  системой В = 10.

Например, число 123 можно представить так:

453 = 4 х 102 + 5 х 101 + 3 х 10°= 4 х 100 + 5 х 10 + 3 х 1 = 400 + 50 + 3 = 453.

Теперь поговорим о шестнадцатеричной системе. В этой системе  шестнадцать цифр:

О, 1, 2, 3, 4, 5. 6, 7, 8, 9, А, В, С, D, E, F.

Цифры А, В, С, D, Е и F соответствуют числам 10, 11, 12, 13, 14 и 15  десятичной системы.

Вернемся к приведенной выше формуле, позволяющей представить число в любой системе счисления. Используя ее, вы можете с легкостью  преобразовывать шестнадцатеричные числа в десятичные. Рассмотрим, например,  преобразование в десятичную систему числа AF:

А х 161 + F х 16°= 10 х 16 + 15 = 175.

Проверку можно выполнить при помощи обычного калькулятора Windows, для запуска которого выполните команду Вид => Инженерный. Установите переключатель системы счисления в положение Hex (шестнадцатеричная), с помощью кнопок калькулятора или клавиш клавиатуры введите число AF, после чего установите переключатель системы в положение Dec  (десятичная). В результате выполненных действий получаем 175. Шестнадцатеричные числа часто записываются так: Охчисло. Например,  запись 0×77 означает, что число 77 записано в шестнадцатеричной системе.

Очевидно, что оно не равно числу 77 в десятичной системе: после  преобразования 0×77 в десятичную систему получим число 119.

Иногда для указания того, что число записано в шестнадцатеричной системе, вместо префикса Ох добавляют суффикс h: 77h.

Рассмотрим теперь порядок следования байтов в шестнадцатеричном числе.

Для числа OxAlFF OxAl — это старший байт, a OxFF — младший байт.

Левый байт называется старшим, поскольку вы умножаете его цифры на более высокие степени 16.

Одни программы хранят числа в прямом порядке байтов (в англоязычной литературе он называется Little-Endian), а другие — в обратном порядке (Big-Endian). Если используется обратный порядок, то первыми сохраняются старшие байты, а потом — младшие. Предположим, что нам нужно  сохранить в памяти число 0×010203. Если используется обратный порядок записи байтов, оно будет сохранено в памяти таким образом:

0×01 0×02 0×03

Очень удобно с точки зрения обычного человека, однако процессоры фирмы Intel, например, работают с прямым порядком следования байтов, в котором сначала сохраняются младшие байты, а потом — старшие. Следовательно, наше число 0×010203 будет сохранено в памяти так:

0×03 0×02 0×01

Об этом нужно помнить при работе с программами изменения реестра, хотя в большинстве случаев они корректно работают как с прямым, так и с  обратным порядком следования байтов.


Оцените статью:
1 голос2 голоса3 голоса4 голоса5 голосов (Нет голосов)
Loading...Loading...
1 030 визитов
Также смотрите

Оставьте свой комментарий к статье