Из некоторых ваших вопросов стало ясно, что многие из вас не знакомы с шестнадцатеричной системой счисления, или просто с hex. Шестнадцатеричная система используется во всей вычислительной технике, и если вы никогда не изучали эту систему счисления Base16, она может показаться вам довольно сложной.
Для тех из вас, кого могла ошеломить эта, на первый взгляд, загадочная система исчисления, я посвящаю это краткое введение и обзор шестнадцатеричной системы исчисления.
Как вы уже знаете, шестнадцатеричная система счисления встречается повсюду на вашем компьютере и в программном обеспечении. Обычно она выглядит примерно так: 0x4D или просто 4D . Вы сразу понимаете, что здесь что-то не так, потому что, во-первых, она часто начинается со странного 0x, а во-вторых, здесь используются буквы, а не только цифры (0–9).
Мы часто сталкиваемся с шестнадцатеричным кодом на образах жестких дисков, например, в цифровой криминалистике, как показано ниже.
Или мы также можем столкнуться с hex при использовании Wireshark , как показано ниже.
И мы с большой долей вероятности столкнемся с hex при чтении наших оповещений IDS, таких как Snort , как показано ниже.
Одной из самых важных причин понимать и изучать шестнадцатеричную систему исчисления является то, что все наши MAC-адреса на всех сетевых картах и сетевых устройствах указаны в шестнадцатеричной системе исчисления, а IPv6 ВСЕ будет указан в шестнадцатеричной системе исчисления, как только получит широкое распространение.
Если вы не знакомы с гексаграммой, сейчас самое время уделить несколько минут, чтобы разобраться в ней. Несколько минут сейчас, вероятно, избавят вас от долгих часов головной боли в будущем.
31337
Представляет (начиная справа и двигаясь влево):
7 единиц (1) 3 десятка (10) 3 сотни (100) 1 тысяча (1000) 3 десятка тысяч (10 000)
Каждый плейсхолдер в 10 раз больше предыдущего. Шестнадцатеричная система работает аналогично, но каждый столбец в 16 раз больше предыдущего. Таким образом, первые четыре шестнадцатеричных столбца имеют следующие значения:
4096 256 16 1
Каждый столбец в 16 раз больше столбца справа.
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
Большинству людей сложно работать с двоичной системой счисления, лежащей в основе наших компьютерных систем. Числа в двоичной системе счисления можно представить следующим образом:
1101 1100
Хотя это число представляет собой 2220 в десятичной системе счисления , преобразование в десятичную систему счисления не является простым и интуитивно понятным.
Шестнадцатеричная система позволяет представлять значения одного байта всего двумя цифрами, поскольку двузначные шестнадцатеричные значения также находятся в диапазоне от 0 до 255. Шестнадцатеричная система более компактна, чем система счисления с основанием 2, и по внешнему виду и функционированию она гораздо больше похожа на десятичную систему, чем на систему счисления с основанием 2. Кроме того, каждое значение, которое может быть представлено байтом, может быть представлено в шестнадцатеричной системе значениями в диапазоне от 0x00 до 0xFF (255).
Теперь перейдите в меню «Вид» вверху и выберите « Программист ».
Как вы видите, в левой части калькулятора, примерно посередине, расположены четыре кнопки: Hex, Dec, Oct, Bin. По умолчанию выбран Dec или Decimal, наша привычная система счисления с основанием 10. Если нужно ввести шестнадцатеричное число, просто нажмите кнопку Hex и введите число.
После этого я могу переключиться на кнопку Dec, и она преобразует мое шестнадцатеричное число в десятичное.
Наконец, если нам нужно сложить, вычесть, умножить или разделить в шестнадцатеричном формате, мы также можем использовать режим «Программист» в калькуляторе. То есть, если мы хотим сложить шестнадцатеричное значение DE и шестнадцатеричное значение A5 , мы просто вводим DE в калькулятор, нажимаем кнопку сложения (+), затем вводим A5 и нажимаем «равно». Результат будет 183 в шестнадцатеричном формате.
А затем мы можем переключиться на кнопку Dec и получить десятичный эквивалент или 387.
Надеюсь, этот краткий урок по гексагональной графике будет вам полезен!
Для тех из вас, кого могла ошеломить эта, на первый взгляд, загадочная система исчисления, я посвящаю это краткое введение и обзор шестнадцатеричной системы исчисления.
Как вы уже знаете, шестнадцатеричная система счисления встречается повсюду на вашем компьютере и в программном обеспечении. Обычно она выглядит примерно так: 0x4D или просто 4D . Вы сразу понимаете, что здесь что-то не так, потому что, во-первых, она часто начинается со странного 0x, а во-вторых, здесь используются буквы, а не только цифры (0–9).
Мы часто сталкиваемся с шестнадцатеричным кодом на образах жестких дисков, например, в цифровой криминалистике, как показано ниже.
Или мы также можем столкнуться с hex при использовании Wireshark , как показано ниже.
И мы с большой долей вероятности столкнемся с hex при чтении наших оповещений IDS, таких как Snort , как показано ниже.
Одной из самых важных причин понимать и изучать шестнадцатеричную систему исчисления является то, что все наши MAC-адреса на всех сетевых картах и сетевых устройствах указаны в шестнадцатеричной системе исчисления, а IPv6 ВСЕ будет указан в шестнадцатеричной системе исчисления, как только получит широкое распространение.
Если вы не знакомы с гексаграммой, сейчас самое время уделить несколько минут, чтобы разобраться в ней. Несколько минут сейчас, вероятно, избавят вас от долгих часов головной боли в будущем.
Наша десятичная система
Один из лучших способов понять шестнадцатеричную систему счисления (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, как показано ниже:
Теперь перейдите в меню «Вид» вверху и выберите « Программист ».
Как вы видите, в левой части калькулятора, примерно посередине, расположены четыре кнопки: Hex, Dec, Oct, Bin. По умолчанию выбран Dec или Decimal, наша привычная система счисления с основанием 10. Если нужно ввести шестнадцатеричное число, просто нажмите кнопку Hex и введите число.
После этого я могу переключиться на кнопку Dec, и она преобразует мое шестнадцатеричное число в десятичное.
Наконец, если нам нужно сложить, вычесть, умножить или разделить в шестнадцатеричном формате, мы также можем использовать режим «Программист» в калькуляторе. То есть, если мы хотим сложить шестнадцатеричное значение DE и шестнадцатеричное значение A5 , мы просто вводим DE в калькулятор, нажимаем кнопку сложения (+), затем вводим A5 и нажимаем «равно». Результат будет 183 в шестнадцатеричном формате.
А затем мы можем переключиться на кнопку Dec и получить десятичный эквивалент или 387.
Надеюсь, этот краткий урок по гексагональной графике будет вам полезен!