Шестнадцатеричный — hexadecimal

Что такое восьмеричный?

До сих пор мы обнаружили, что десятичное число также может быть обозначена как число с основанием 10, потому что оно имеет 10 различных символов для выражения чисел (от 0 до 9), а в число с основанием 2 только ноль и один. Теперь мы представим восьмеричную, ещё одну компьютерно-ориентированную систему счисления, которая имеет 8 возможных символов. Как вы уже догадались, от нуля (0) до семи (7). Вы можете начать понимать, почему существуют такие системы счисления: добро пожаловать в степень двойки: 2 (двоичная) > 4 (полбайта) > 8 (восьмеричная, один байт) > 16 (шестнадцатеричная).

Так что же такое байт? Байт состоит из восьми битов (обычно визуально отображается как 2 набора по 4 бита, хотя для компьютера это просто 8 бит в строке), образующих один байт. Например, 0110 1100 — это действительный байт, состоящий из 8 бит. Это число можно преобразовать в восьмеричное (154), шестнадцатеричное (6C) и десятичное (108)

Обратите внимание на то, что чем выше номер основания числа, тем короче его запись, например, 6C в шестнадцатеричной системе записывается как 154 в восьмеричной системе счисления. В двоичной системе счисления запись этого числа будет ещё длиннее.

Байт часто используется для хранения простых буквенно-цифровых символов. Например, буква «A» записывается в двоичном формате как 0100 0001

Обратите внимание, что максимальное значение в байте (например, 1111 1111) равно 255, и, таким образом, существует только 256 возможных комбинаций (+1, поскольку 0 также является возможной опцией) — это все возможные комбинации, которые можно сделать с помощью одного байта. Таким образом, наш ограниченный диапазон от A до Z, даже включая цифры 0-9 и строчные буквы a-z, все вместе легко умещается в один байт, и мы даже можем представить некоторые другие символы, такие как «@» и «!».

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

Возвращаясь к восьмеричной системе счисления, как считать восьмеричные числа? Как вы уже догадались, всё происходит как в десятичной и двоичной системах счисления: тот же метод, который мы уже видели, после каждого раунда дописывается ещё одна цифра, а предыдущие цифры сбрасываются на ноль. Только нужно помнить о том, что в восьмеричной системе счисления максимальной (последней) цифрой является 7. Посчитаем вместе: 0… 1… 2… 3… 4… 5… 6… 7… 10… 11… — выглядит немного странно, не так ли? Это потому, что наш разум так настроен думать о 10, ну, как о «10». Но 10 в восьмеричной системе счисления равно 8 в десятичной. Сбивает с толку? Для нас, простых людей, да, восьмеричная система счисления с основанием числа 8 может сбивать с толку. Для компьютера это не проблема.

Общие сведения

Система счисления — метод символьного типа для записи чисел с помощью определенных знаков. Последние записываются посредством чисел и цифр. Однако не все понимают логического смысла последних терминов. Числом называется некоторая абстрактное значение, характеризующее количественные характеристики какой-либо величины, явления или процесса. Цифра является знаком, который необходим для записи числа.

Цифры бывают 2 видов: арабскими и римскими. Первые являются самыми распространенными. Они представлены знаковым интервалом от 0 до 9. Чисел больше, и поэтому используется набор цифр. Для этого и были придуманы системы исчисления. Они делятся на четыре группы:

  1. Позиционные.
  2. Непозиционные.
  3. Смешанные.
  4. Унарные.

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

Во втором случае простым примером является массив данных с параметром «ключ — значение». Например, массив ассоциативного типа состоит из 3 элементов: ‘login’ -> ‘Ivan10’, ‘pass’ -> ‘12345’ и ‘name’ -> ‘Иван’. В этом случае данные можно менять местами, поскольку логика сохранится.

Смешанной является система, в которой присутствуют данные позиционной и непозиционной групп.Простой пример — деньги. Существуют два типа денежных знаков: монеты и купюры. Например, техника стоит 5250 рублей 50 копеек.

Унарной называется единичная система с одной цифрой. Последняя может быть представлена в виде 1, черты, креста и любого целого значения. Иными словами, каждый знак соответствует 1. Например, запись «1111111» эквивалентна «|||||||». Если расшифровать ее, то получится число 7. В книге Даниэля Дефо «Робинзон Крузо» герой применял данную систему для подсчета дней, проведенных на острове. Детей обучают математике на начальном уровне с помощью счетных палочек. Если вспомнить историю, то древние люди тоже пользовались унарным счислением.

Культурная история

Традиционными китайскими единицами измерения были base-16. Например, один дзин (斤) в старой системе равен шестнадцати таэлам . Суаньпань (китайская абака ) может быть использована для выполнения вычислений шестнадцатеричных , таких как сложение и вычитание.

Как и в случае с двенадцатеричной системой, были случайные попытки продвинуть шестнадцатеричную систему счисления в качестве предпочтительной. Эти попытки часто предлагают конкретное произношение и символы для отдельных цифр. Некоторые предложения унифицируют стандартные меры, так что они кратны 16. Раннее такое предложение было выдвинуто Джоном У. Нистромом в работе « Проект новой системы арифметики, веса, меры и монет: предлагается называть тональной системой с шестнадцатью». к Базе , опубликованной в 1862 году. Нистром, среди прочего, предложил шестнадцатеричное время , в котором день делится на 16, так что в сутках 16 «часов» (или «10 таймов », произносится как тонтим ).

Слово шестнадцатеричное впервые было записано в 1952 году. Оно является макаронным в том смысле, что объединяет греческое ἕξ (шестнадцатеричное) «шесть» с латинским десятичным числом . Альтернативное латинское шестидесятеричное число (сравните слово шестидесятеричное с основанием 60) старше и, по крайней мере, время от времени используется с конца 19 века. Он все еще используется в 1950-х годах в документации Bendix . Шварцман (1994) утверждает, что использования шестнадцатеричного числа можно было избежать из-за его предполагаемого сокращения, обозначающего пол . Многие западные языки с 1960-х годов приняли термины, эквивалентные шестнадцатеричной системе счисления (например, французский шестнадцатеричный , итальянский esadecimale , румынский шестнадцатеричный , сербский хексадецимални и т. Д.), Но в других были введены термины, заменяющие «шестнадцать» на родные слова (например, греческий δεκαεξαδικός, исландский sextándakerfi , русская шестнадцатеричной и т. д.)

Терминология и обозначения не были утверждены до конца 1960-х годов.
Дональд Кнут в 1969 году утверждал, что этимологически правильным термином будет старший , или, возможно, седенарный , латинский термин, предназначенный для передачи словосочетания «сгруппировано по 16» по образцу двоичного , тройного и четвертичного и т. Д. Согласно аргументу Кнута, правильные термины для десятичного и восьмеричного чисел арифметика будет десятичной и восьмеричной соответственно. Альфред Б. Тейлор использовал senidenary в своей работе середины 1800-х годов по альтернативным основам счисления, хотя он отклонил основание 16 из-за «несущественного количества цифр».

Нынешняя нотация с использованием букв от A до F становится стандартом де-факто, начиная с 1966 года, после публикации руководства по Fortran IV для IBM System / 360 , которое (в отличие от более ранних вариантов Fortran) признает стандарт для ввода шестнадцатеричных констант. Как отмечалось выше, альтернативные обозначения использовались NEC (1960) и Pacific Data Systems 1020 (1964). Стандарт, принятый IBM, похоже, получил широкое распространение к 1968 году, когда Брюс Алан Мартин в своем письме редактору CACM жалуется, что

«С нелепым выбором букв A, B, C, D, E, F в качестве символов шестнадцатеричных чисел, усугубляющих и без того неприятные проблемы отличия восьмеричных (или шестнадцатеричных) чисел от десятичных чисел (или имен переменных), настало время для пересмотра наших числовых символов. Это должно было быть сделано до того, как плохой выбор превратился в стандарт де-факто! «

Аргумент Мартина заключался в том, что использование цифр от 0 до 9 в недесятичных числах «подразумевает для нас схему десятичных значений»: «Почему бы не использовать совершенно новые символы (и имена) для семи или пятнадцати ненулевых цифр, необходимых в восьмеричной или шестнадцатеричной системе. . Даже использование букв от A до P было бы улучшением, но совершенно новые символы могли бы отражать двоичную природу системы «.

Перевод чисел из одной системы счисления в другую

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

Перевод чисел из любой системы счисления в десятичную систему счисления

Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:

1. Перевести число в десятичную систему счисления.Решение: = = = Ответ: =

2. Перевести число в десятичную систему счисления.Решение: = = = Ответ: =

Перевод чисел из десятичной системы счисления в другую систему счисления

Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.

Перевод целой части числа из десятичной системы счисления в другую систему счисления

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

3. Перевести число в восьмиричную систему счисления.Решение: 273 / 8 = 34 и остаток 1, 34 / 8 = 4 и остаток 2, 4 меньше 8, поэтому вычисления завершены. Запись из остатков будет иметь следующий вид: 421Проверка: = = = , результат совпал. Значит перевод выполнен правильно.Ответ: =

Рассмотрим перевод правильных десятичных дробей в различные системы счисления.

Перевод дробной части числа из десятичной системы счисления в другую систему счисления

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

4. Перевести число в двоичную систему счисления.Решение: (0 — целая часть, которая станет первой цифрой результата), (0 — вторая цифра результата), (1 — третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).Ответ: =

Функция преобразования числа в шестнадцатеричное

В Паскале есть стандартная функция для преобразования
десятичных чисел в шестнадцатеричные: IntToHex. Эта функция объявлена в
модуле SysUtils, и её мы будем использовать для проверки работы нашей собственной функции, которую я назову MyIntToHex, и которая будет работать примерно также, как и стандартная функция IntToHex.

Кроме того, чтобы упростить код основной функции, я использую вспомогательную функцию DigitToHex, которая будет переводить одну десятичную цифру в шестнадцатеричную.

Решение будет, быть может, не самым простым. Но зато мы постараемся использовать как можно меньше стандартных функций. Коды функций отдельно приводить не буду — см. их в примерах программ.

Также не забываем, что по условию задачи нам требуется выполнить преобразование только
для . Отрицательные числа не являются натуральными, поэтому наша функция с ними не работает (хотя если убрать в теле функции проверку числа, то будет работать также как и стандартная функция IntToHex).

Решение задачи 2.26 на Паскале

 
program mytask;

uses SysUtils;    //Подключить этот модуль !!!

//****************************************************************
// КОНСТАНТЫ
//****************************************************************
const
  NUM = $0ABC;    //Число 2748

//****************************************************************
// ФУНКЦИИ И ПРОЦЕДУРЫ
//****************************************************************

//****************************************************************
// Преобразует десятичную цифру в шестнадцатеричную (символ)
// ВХОД  : N - цифра
// ВЫХОД : шестнадцатеричная цифра (символ)
//****************************************************************
function DigitToHex(N : Integer) : char;
begin
  Result := '?';
  case N of
  0   : Result := '0';
  1   : Result := '1';
  2   : Result := '2';
  3   : Result := '3';
  4   : Result := '4';
  5   : Result := '5';
  6   : Result := '6';
  7   : Result := '7';
  8   : Result := '8';
  9   : Result := '9';
  10  : Result := 'A';
  11  : Result := 'B';
  12  : Result := 'C';
  13  : Result := 'D';
  14  : Result := 'E';
  15  : Result := 'F';
  end;
end;

//****************************************************************
// Преобразует десятичное число в шестнадцатеричное (строку)
// ВХОД  : Num - число, Count - количество цифр в шестнадцатеричном числе
// ВЫХОД : шестнадцатеричное число (строка)
//****************************************************************
function MyIntToHex(Num, Count : Integer) : string;
var N, X  : Integer;
    i, j  : Integer;
    Res   : string;
begin
  if Num Exit;
  Res := '';
  Result := '?';
  N := Num;
  i := 1;
  while N > 0 do
    begin
      Inc(i);
      X := N mod 16;
      N := N div 16;
      if X for j := i to Count do Res := '0' + Res;
  Result := Res;
end;

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
begin

  WriteLn('DEC = ', NUM, '; HEX = ', IntToHex(NUM, 4));
  WriteLn('DEC = ', NUM, '; HEX = ', MyIntToHex(NUM, 4));

  WriteLn('The end. Press ENTER...');
  ReadLn;
end.

Решение задачи 2.26 на С++

#include <cstdlib>
#include <iostream>

using namespace std;

//****************************************************************
// КОНСТАНТЫ
//****************************************************************
const int NUM = 0xABC;    //Число 2748 

//****************************************************************
// ФУНКЦИИ И ПРОЦЕДУРЫ
//****************************************************************

//****************************************************************
// Преобразует десятичную цифру в шестнадцатеричную (символ)
// ВХОД  : N - цифра
// ВЫХОД : шестнадцатеричная цифра (символ)
//****************************************************************
char DigitToHex(int N)
{
  switch (N)
  {
    case 0  : return('0'); break;
    case 1  : return('1'); break;
    case 2  : return('2'); break;
    case 3  : return('3'); break;
    case 4  : return('4'); break;
    case 5  : return('5'); break;
    case 6  : return('6'); break;
    case 7  : return('7'); break;
    case 8  : return('8'); break;
    case 9  : return('9'); break;
    case 10 : return('A'); break;
    case 11 : return('B'); break;
    case 12 : return('C'); break;
    case 13 : return('D'); break;
    case 14 : return('E'); break;
    case 15 : return('F'); break;
    default : return('?');
  }
}

//****************************************************************
// Преобразует десятичное число в шестнадцатеричное (строку)
// ВХОД  : Num - число, Count - количество цифр в шестнадцатеричном числе
// ВЫХОД : шестнадцатеричное число (строка)
//****************************************************************
string MyIntToHex(int Num, int Count)
{
  string Res = "?";
  if (Num  0)
  {
    i++;
    X = N % 16;
    N = N / 16;
    if (X 


Какие бывают системы счисления

На самом деле, существует бесчисленное множество с. с. Например, количество позиционных с. с., к которым относятся системы с натуральным основанием, бесконечно. Потому что, каким бы огромным числом ни было основание, всегда можно выразить любое число в данной системе счисления. Главное, чтобы хватило символов для его записи. Например, для записи чисел в системе счисления с основанием 666 понадобится алфавит, включающий в себя ровно 666 символов-букв или, если хотите, цифр.

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

Двоичная используется в программировании, информатике и дискретной математике, десятичная — во всех сферах жизни, где есть необходимость считать и измерять, шестнадцатеричная — также используется в информатике и программировании (особенно, в низкоуровневом, где используются языки ассемблеры), а также в компьютерной документации, шестидесятеричная — в счёте и измерении времени и углов (в частности, географических координат).

Кроме упомянутых, есть и другие системы, не относящиеся к позиционным. Это смешанные и непозиционные с. с., которые мы здесь рассматривать не будем.

Перевод чисел из десятичной системы счисления в другую систему счисления

Для перевода чисел из десятичной системы счисления в другую систему счисления нужно переводить отдельно целую часть числа и дробную часть числа.

Целую часть числа переводится из десятичной СС в другую систему счисления — последовательным делением целой части числа на основание системы счисления (для двоичной СС — на 2, для 8-ичной СС — на 8, для 16-ичной — на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.

Пример 4. Переведем число 159 из десятичной СС в двоичную СС:

159 2            
158 79 2          
1 78 39 2        
  1 38 19 2      
    1 18 9 2    
      1 8 4 2  
        1 4 2 2
          2 1

Рис. 1

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111. Следовательно можно записать:

Пример 5. Переведем число 615 из десятичной СС в восьмеричную СС.

615 8    
608 76 8  
7 72 9 8
  4 8 1
    1  

Рис. 2

При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147(см. Рис. 2). Следовательно можно записать:

Пример 6. Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.

19673 16    
19664 1229 16  
9 1216 76 16
  13 64 4
    12  

Рис. 3

Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 — D. Следовательно наше шестнадцатеричное число — это 4CD9.

Далее рассмотрим перевод правильных десятичных дробей в двоичную СС, в восьмеричную СС, в шестнадцатеричную СС и т.д.

Для перевода правильных десятичных дробей (вещественное число с нулевой целой частью) в систему счисления с основанием s необходимо данное число последовательно умножить на s до тех пор, пока в дробной части не получится чистый нуль, или же не получим требуемое количество разрядов. Если при умножении получится число с целой частью, отличное от нуля, то эту целую часть не учитывать (они последовательно зачисливаются в результат).

Рассмотрим вышеизложенное на примерах.

Пример 7. Переведем число 0.214 из десятичной системы счисления в двоичную СС.

    0.214
  x 2
  0.428
  x 2
  0.856
  x 2
1   0.712
  x 2
1   0.424
  x 2
  0.848
  x 2
1   0.696
  x 2
1   0.392

Рис. 4

Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011.

Следовательно можно записать:

Пример 8. Переведем число 0.125 из десятичной системы счисления в двоичную СС.

    0.125
  x 2
  0.25
  x 2
  0.5
  x 2
1   0.0

Рис. 5

Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:

Пример 9. Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.

    0.214
  x 16
3   0.424
  x 16
6   0.784
  x 16
12   0.544
  x 16
8   0.704
  x 16
11   0.264
  x 16
4   0.224

Рис. 6

Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:

Пример 10. Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.

    0.512
  x 8
4   0.096
  x 8
  0.768
  x 8
6   0.144
  x 8
1   0.152
  x 8
1   0.216
  x 8
1   0.728

Рис. 7

Получили:

Пример 11. Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:

Пример 12. Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим:

Как перевести число из шестнадцатеричной системы счисления в десятичную

Согласно одной алгебраической теореме, любое число Y, записанное в N-ичной с. с., можно представить в виде:

Y (N)=Rk•N^k+…Ri•N^i+…+R3•N 3 +R2•N 2 +R1•N 1 +R0•N +S1•N^(-1)+S2•N^(-2)+S3•N^(-3)+…+Sj•N^(-j)+…+Sn•N^(-n) =Rk…Ri…R2 R1 R0, S1 S2 S3… Sj… Sn=X (10).

В этом выражении коэффициенты N^i (i=0…k) и N^(-j) (j=1…n) называются весовыми коэффициентами разрядов, Riи Sj — цифрами N-ичного числа, i — номером разряда в целой части R, (-j) — номером разряда в дробной части S N-ичного числа Y (R=, S={Y}).

Справа в этом выражении стоит результат сложения всех весовых коэффициентов, умноженных на цифры соответствующих разрядов N-ричного числа Y, который представлен в виде 10-ичного числа Х.

Пользуясь этой теоремой, мы легко сможем переводить шестнадцатеричные числа в десятичные. Для этого нужно просто в приведённую выше формулу подставить N=16. В результате получим следующий алгоритм.

Алгоритм 3

Способ перевода из 16-ричной системы в 10-ичную

  1. Пусть задано 16-ричное число Y (16), имеющее в целой части k+1 цифр, а в дробной — n цифр. Номера разрядов в целой части принимают значения от 0 до k. Умножьте каждую его цифру, начиная с первой перед запятой, на 16 в степени, равной номеру разряда этой цифры. Полученные произведения сложите. Результатом будет целая часть Y в десятичном виде — P=.
  2. Умножьте теперь каждую цифру числа Y (16), начиная с первой цифры, стоящей после запятой, на 16 в степени, равной отрицательному номеру разряда этой цифры. Номера разрядов в дробной части идут от -1 до -n. Полученные произведения сложите. Результатом будет дробная часть Y в десятичном виде — Q={X}.
  3. Сложите целую и дробную части Y в десятичном виде. Вы получите результат — десятичное число X (10)=Y (16).

Шестнадцатеричный формат

Осуществить конвертацию из десятичного в шестнадцатеричный код (HEX — hexadecimal) можно только с использованием программ. Ручной метод основан на двойной конвертации. Для его реализации нужно перевести число, записанное в десятичной системе, в двоичный код, а затем в шестнадцатеричный.

Основанием является целочисленное значение, равное 16. Система состоит из арабских цифр от 0 до 9, а также букв, обозначающих конкретные значения: А = 10, В = 11, С = 12, D = 13, Е = 14 и F = 15. В автоматизированном режиме можно воспользоваться переводчиком шестнадцатеричного кода.

Необходимо отметить, что HEX применяется также в низкоуровневом программировании. Выбор этой системы счисления основан на решении в компьютерной технике применять такую единицу информации, как байт (состоит из 8 битов). Его удобно записывать двумя HEX-цифрами (от 0 до 255, т. е. #00 до #FF). Кроме того, шестнадцатеричный код в текст также конвертируется. Примером этому является кодировка Юникод, в которой для записи символа применяются четыре HEX-цифры. Цвет RGB-формата графического изображения также записывается с его помощью.

Способы записи

Существует несколько форм записи числа, представленного в HEX. Математическая форма выглядит таким образом: {16}. Можно также найти запись, в которой вместо {16} стоит нижний индекс. Она применяется в информатике.

Запись отличается в языках программирования, поскольку у каждого из них различный синтаксис и правила написания кода. Основные формы представления HEX следующие:

  • В С, С++ и похожих применяется префикс «0х».
  • В Ассемблере после числа ставится латинская буква «h».
  • В Pascal, Delfi, Basic используется символ «$».
  • В HTML и CSS — «#».
  • В Python — «0х».

Алгоритм конвертации

Перевод в шестнадцатеричный код рекомендуется осуществлять с помощью специальных приложений (конвертеров кода). Если же их нет под рукой, то специалисты рекомендуют использовать специальный алгоритм:

  1. Выполнить конвертацию десятичной формы записи в двоичную по любому алгоритму.
  2. Распределить знаки на тетрады (по 4 штуки или четверичные группы). Если в какой-то группе их количество меньше 4, то дописывается в начале 0.
  3. Записать значения для каждой тетрады.
  4. Проверить результат.

Операции умножения, сложения, вычитания и деления сложны.

Они осуществляются только с помощью специальных программ или онлайн-сервисов.

Не следует путать четверичные с троичными группами, которые используются в восьмеричном коде.

Например, нужно перевести 118 в HEX-код.

Для этого следует воспользоваться описанным алгоритмом:

  1. Степенной метод, описанный выше: {10} = {2}.
  2. Распределение символов на тетрады (в старшем разряде нужно дописать 0): 0111 0110.
  3. Первое значение: 0 + 2 2 + 2 1 + 2 = 0 + 4 + 2 + 1 = {16}.
  4. Второе: 0 + 2 2 + 2 1 + 0 = {16}.
  5. Результат: {16}.

В некоторых случаях нужно использовать буквы. Например, для перевода числа {2} в HEX-код нужно также воспользоваться алгоритмом, разбивая его на тетрады следующим образом: 1111 0111. Первая группа равна 2 3 + 2 2 + 2 1 + 2 = {10} = F{16}, а вторая — 0 + 2 2 + 2 1 + 2 = 7. Результирующая запись имеет такой вид: {2} = {16}.

Таким образом, HEX-код получил широкое применение в IT-сфере, поскольку он очень удобен для записи массивов информации. Однако для его конвертации в ручном режиме нужно изучить двоичную систему счисления, а также основные алгоритмы преобразования.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мастер по всему
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: