Основы шестнадцатеричной системы счисления

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Из некоторых ваших вопросов стало ясно, что многие из вас не знакомы с шестнадцатеричной системой счисления, или просто с hex. Шестнадцатеричная система используется во всей вычислительной технике, и если вы никогда не изучали эту систему счисления Base16, она может показаться вам довольно сложной.

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

Как вы уже знаете, шестнадцатеричная система счисления встречается повсюду на вашем компьютере и в программном обеспечении. Обычно она выглядит примерно так: 0x4D или просто 4D . Вы сразу понимаете, что здесь что-то не так, потому что, во-первых, она часто начинается со странного 0x, а во-вторых, здесь используются буквы, а не только цифры (0–9).

Мы часто сталкиваемся с шестнадцатеричным кодом на образах жестких дисков, например, в цифровой криминалистике, как показано ниже.





6a4a49_bdd343f0f7d94b1d897ef40a165a52b1mv2.webp




Или мы также можем столкнуться с hex при использовании Wireshark , как показано ниже.



6a4a49_587075135a084c7893e3b26b75d0c34fmv2.webp




И мы с большой долей вероятности столкнемся с hex при чтении наших оповещений IDS, таких как Snort , как показано ниже.



6a4a49_5d16dbf1e36149f186544b1ad93dce7cmv2.webp




Одной из самых важных причин понимать и изучать шестнадцатеричную систему исчисления является то, что все наши MAC-адреса на всех сетевых картах и сетевых устройствах указаны в шестнадцатеричной системе исчисления, а IPv6 ВСЕ будет указан в шестнадцатеричной системе исчисления, как только получит широкое распространение.



6a4a49_380b8a5d5bd04270a5ce9e93c6b6228bmv2.webp




Если вы не знакомы с гексаграммой, сейчас самое время уделить несколько минут, чтобы разобраться в ней. Несколько минут сейчас, вероятно, избавят вас от долгих часов головной боли в будущем.



6a4a49_721fbf2fc20244b3912cec99a91d71afmv2.webp


Наша десятичная система

Один из лучших способов понять шестнадцатеричную систему счисления (Base 16) — это вернуться к основам десятичной системы счисления, с которой вы хорошо знакомы. В этой системе 10 цифр (0–9), и каждый столбец представляет собой число, в 10 раз большее, чем стоящее справа от него. Например:

31337

Представляет (начиная справа и двигаясь влево):

7 единиц (1) 3 десятка (10) 3 сотни (100) 1 тысяча (1000) 3 десятка тысяч (10 000)

Каждый плейсхолдер в 10 раз больше предыдущего. Шестнадцатеричная система работает аналогично, но каждый столбец в 16 раз больше предыдущего. Таким образом, первые четыре шестнадцатеричных столбца имеют следующие значения:

4096 256 16 1

Каждый столбец в 16 раз больше столбца справа.

Шестнадцатеричная система нумерации

Шестнадцатеричная система счисления основана на основании 16. Как и десятичная система счисления, шестнадцатеричная система должна содержать 16 цифр, чтобы охватить все возможные варианты. К сожалению, у нас есть только 10 цифр (0–9), поэтому нам нужно добавить ещё шесть. В компьютерной индустрии принято использовать буквы AF для представления этих дополнительных значений. Это означает, что шестнадцатеричная система допускает следующие значения:

0 = 0 1= 1 2 = 2 3 = 3 4 = 4 5 = 5 6 = 6 7 = 7 8 = 8 9 = 9 А = 10 Б = 11 В = 12 Г = 13 Д = 14 Е = 15

Это означает, что когда мы видим шестнадцатеричное представление числа, например:

0x45

Мы можем вычислить его аналогично десятичному числу, за исключением того, что второй столбец представляет 16, а не 10. Это означает, что число 0x45 в шестнадцатеричной системе счисления можно вычислить следующим образом:

5 х 1 = 5 4 х 16 = 64 ————— = 69

Если у нас есть шестнадцатеричное число, например DE, мы можем вычислить его значение следующим образом:

D представляет 13 x 16 = 208 E представляет 14 x 1 = 14 ————————————– = 222

Почему мы используем Hex

В вычислительной технике бит — это один переключатель, часто обозначаемый цифрами 0 или 1. Байт состоит из восьми бит, часто обозначаемых цифрами 0000 0000. Байт — важная единица в вычислительной технике, поскольку он часто используется для представления символа ASCII или одного октета в IP-адресе, а также для многих других целей. Диапазон чисел, которые может представлять один байт, составляет от 0 до 255 или 256. Именно поэтому в наших IPv4-адресах каждый октет (байт) имеет значение от 0 до 255, например, 192.168.0.254 с маской сети 255.255.255.0. Понимаете?

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

1101 1100

Хотя это число представляет собой 2220 в десятичной системе счисления , преобразование в десятичную систему счисления не является простым и интуитивно понятным.

Шестнадцатеричная система позволяет представлять значения одного байта всего двумя цифрами, поскольку двузначные шестнадцатеричные значения также находятся в диапазоне от 0 до 255. Шестнадцатеричная система более компактна, чем система счисления с основанием 2, и по внешнему виду и функционированию она гораздо больше похожа на десятичную систему, чем на систему счисления с основанием 2. Кроме того, каждое значение, которое может быть представлено байтом, может быть представлено в шестнадцатеричной системе значениями в диапазоне от 0x00 до 0xFF (255).

Шестнадцатеричная математика

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



6a4a49_51986a2d1aa84113a50f20a96e6082d7mv2.webp




Теперь перейдите в меню «Вид» вверху и выберите « Программист ».



6a4a49_593687e9f98a46fe9f8a47f172e818c8mv2.webp




Как вы видите, в левой части калькулятора, примерно посередине, расположены четыре кнопки: Hex, Dec, Oct, Bin. По умолчанию выбран Dec или Decimal, наша привычная система счисления с основанием 10. Если нужно ввести шестнадцатеричное число, просто нажмите кнопку Hex и введите число.



6a4a49_bb72fae2c24e4080b4b1fddc1941ae6dmv2.webp




После этого я могу переключиться на кнопку Dec, и она преобразует мое шестнадцатеричное число в десятичное.



6a4a49_57c0c8e620584c8fa04996a65598f0d5mv2.webp




Наконец, если нам нужно сложить, вычесть, умножить или разделить в шестнадцатеричном формате, мы также можем использовать режим «Программист» в калькуляторе. То есть, если мы хотим сложить шестнадцатеричное значение DE и шестнадцатеричное значение A5 , мы просто вводим DE в калькулятор, нажимаем кнопку сложения (+), затем вводим A5 и нажимаем «равно». Результат будет 183 в шестнадцатеричном формате.



6a4a49_8ee0b60e11144c0893816b8f78d37ef1mv2-1.webp



А затем мы можем переключиться на кнопку Dec и получить десятичный эквивалент или 387.



6a4a49_2d914e9f90d84f3f9a25729f256b7db8mv2-1.webp




Надеюсь, этот краткий урок по гексагональной графике будет вам полезен!
 
помню еще было приложение hex editor вроде
 
Назад
Сверху Снизу