Разное

15 в шестнадцатеричной системе – ., ,

Сколько будет число 15 в двоичной системе?

Чтоб перевести число в десятичной системе счисление наберите это число в калькуляторе Windows (Пуск-Все програмы-стандартные-калькулятор) . После этого под строкой ввода найдите кнопки Hex(шестнадцатиричная) , Dec(десятичная) , Oct(восьмеричная) , Bin(двоичная) . Выберите нужную систему и нажмите мишью. В окне ввода появитса число в выбраной системе счисления. Число 15 в двоичной системе 1111.

15 в двоичной системе будет 1111

десятичная 15 двоичная 1111 восьмеричная 17 шестнадцатиричная F

15 в двоичной системе будет 1111

touch.otvet.mail.ru

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

Главная / Ассемблер / Для чайников / Системы счисления /

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


0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Соответственно, основание шестнадцатеричной системы равно 16.

Шестнадцатеричное число является компактным и лёгким для чтения. Его легко преобразовать в двоичное и наоборот. Каждый разряд шестнадцатеричного числа – это тетрада. Каждую тетраду легко преобразовать в двоичное число и наоборот (см. таблицу 2.3).

Таблица 2.3. Преобразование чисел.

Десятичное Двоичное Шестнадцатеричное
0 0000 0
1
0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010
A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

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


11 – десятичное число 11
11b – двоичное число, которое эквивалентно десятичному числу 3
11h – шестнадцатеричное число, которое эквивалентно десятичному числу 17
В исходных кодах программ на ассемблере, если шестнадцатеричное число начинается с буквы, то перед ним нужно поставить ноль, иначе ассемблер подумает, что это не число, а имя переменной. Например, число FF в исходном коде на ассемблере должно быть записано как 0FFh.

www.av-assembler.ru

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

char* fromHEXtoBIN(long a, char *bin)

{

    long tmp = a;

    int N;

    if (a == 0)

        N = 1;

    else

    {

        N = 0;

        while (tmp != 0)

        {

            N++;

            tmp = tmp / 16;

        }

    }

    bin = (char*)malloc((4 * N + 1)*sizeof(char));

    for (int i = N - 1; i >= 0; i--)

    {

        switch (a % 16)

        {

            case 0:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '0';

                break;

            }

            case 1:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '1';

                break;

            }

            case 2:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '0';

                break;

            }

            case 3:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '1';

                break;

            }

            case 4:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '0';

                break;

            }

            case 5:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '1';

                break;

            }

            case 6:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '0';

                break;

            }

            case 7:

            {

                bin[4 * i] = '0';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '1';

                break;

            }

            case 8:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '0';

                break;

            }

            case 9:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '1';

                break;

            }

            case 10:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '0';

                break;

            }

            case 11:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '0';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '1';

                break;

            }

            case 12:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '0';

                break;

            }

            case 13:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '0';

                bin[4 * i + 3] = '1';

                break;

            }

            case 14:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '0';

                break;

            }

            case 15:

            {

                bin[4 * i] = '1';

                bin[4 * i + 1] = '1';

                bin[4 * i + 2] = '1';

                bin[4 * i + 3] = '1';

                break;

            }

        }

        a = a / 16;

    }

    bin[4 * N] = '\0';

    return bin;

}

vscode.ru

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

Для перевода чисел из десятичной системы счисления в шестнадцатеричную используют тот же "алгоритм замещения", что и при переводе из десятичной системы счисления в двоичную и восьмеричную, только в качестве делителя используют 16, основание шестнадцатеричной системы счисления:

  1. Делим десятичное число Ана16. ЧастноеQзапоминаем для следующего шага, а остатокaзаписываем какмладшийбит шестнадцатеричного числа.

  2. Если частное qне равно0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток записывается в разряды шестнадцатеричного числа в направлении отмладшегобита кстаршему.

  3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q=0и остатокaменьше16.

Например, требуется перевести десятичное число 32767 в шестнадцатеричное. В соответствии с приведенным алгоритмом получим:

3276710 : 16 = 204710

3276710-3275210=15, остаток15в видеFзаписываем вМБшестнадцатеричного числа.

204710 : 16 = 12710

204710-203210=15, остаток15в виде

Fзаписываем в следующий послеМБразряд шестнадцатеричного числа.

12710 : 16 = 710

12710-11210=15, остаток15в видеFзаписываем в старший разряд шестнадцатеричного числа.

710 : 16 = 010, остаток7записываем в старший разряд шестнадцатеричного числа.

Таким образом, искомое шестнадцатеричное число равно 7FFF16.

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

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

Пусть требуется перевести двоичное число 101011011001101101111001010110010112 в восьмеричную систему счисления. Для этого следует разбить это двоичное число на триады, начиная с младшего бита (МБ). Получим:

010 101 101 100 110 110 111 100 101 011 001 0112

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

2 5 5 4 6 6 7 4 5 3 1 38

Таким образом,

101011011001101101111001010110010112=2554667453138

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

0101 0110 1100 1101 1011 1100 1010 1100 10112

Заменяя двоичные тетрады на их шестнадцатеричные значения, получим искомое шестнадцатеричное число:

101011011001101101111001010110010112=56CDBCACB16

Очевидно, что разбиения на триады и тетрады связаны со степенями двойки (для триады, при переводе в восьмеричную систему, 23, а для тетрады, при переводе в шестнадцатеричную, 24). Сравнительные таблицы соответствия чисел в различных системах счисления можно найти в Приложении.

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

Алгоритм перевода чисел из одной системы счисления в другую наиболее прост в том случае, когда одно из оснований этих систем является степенью другой, как, например, в случае двоичной и восьмеричной систем счисления. В таком случае алгоритм перевода состоит в простой замене чисел одной системы на равные им числа другой системы счисления (в случае положительных чисел). На начальном этапе удобно и полезно воспользоваться таблицей соответствия, приведенной в Приложении.

Пусть требуется перевести восьмеричное число 24738 в двоичное число. Воспользовавшись Таблицей соответствия из Приложения, получим:

24738=101001110112,

поскольку 28 = 0102, 48 = 1002, 78 = 1112... Следует помнить, что восьмеричное число кодируется тремя битами, и выписывать триады нужно полностью. Исключением из этого правила может служить только старшая триада, в которой старший бит (СБ) равен нулю.

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

24738=101001110112=0101 0011 10112=53B16

studfiles.net

2.3. Шестнадцатеричная система счисления » СтудИзба

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

Данная система счисления имеет следующий набор цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}. Основание системы p =16.

Следующая таблица содержит представления десятичных чисел из диапазона 0-15 в двоичной и шестнадцатеричной системах счисления.

 

Десятичные числа

Двоичные числа

Шестнадцатеричные числа

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

 

Таблицей удобно пользоваться при преобразованиях чисел из одной системы счисления в другую. Количественный эквивалент некоторого целого n-разрядного числа вычисляется по формуле (1).

A(16)=an-1*16n-1+an-2*16n-2+…+a1*161+a0*160   

Например, число F45ED23C в десятичной системы счисления будет следующим:

15*167+4*166+5*165+14*164+13*163+2*162+3*161+12*160 = 4099854908.

 

Десятичная система счисления

Данная система счисления имеет следующий набор цифр {0,1,2,3,4,5,6,7,8,9}, основание степени p =10. Количественный эквивалент некоторого целого n-значного десятичного числа вычисляется согласно формуле

A(10)=an-1*10n-1+an-2*10n-2+…+a1*101+a0*100

 

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

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

             Преобразование десятичных чисел в двоичные

Алгоритм преобразования следующий:

1)     Разделить десятичное число А на основание системы счисления (в данном случае на 2).

2)     Запомнить частное q и остаток а. Если в результате первого шага частное q0, то принять его за новое делимое и отметить остаток а, который будет очередной значащей цифрой числа. Далее вернуться к шагу 1, на котором в качестве делимого (десятичного числа) участвует полученное на шаге 2 частное.

3)     Если в результате шага 1 частное q =0, алгоритм прекращается.

4)     Выписать остатки в порядке обратном их получению. Тем самым будет составлен двоичный эквивалент исходного числа.

Рассмотрим два примера.

1.Преобразовать десятичное число 57 в двоичное число

Шаг           Деление               Частное               Остаток

1                 57/2                     28                        1                 (МЗР)

2                 28/2                     14                        0

3                 14/2                     7                          0

4                 7/2                       3                          1

5                 3/2                       1                          1

6                 1/2                       0                          1                 (СЗР)

 

МЗР – младший значащий разряд.

СЗР – старший значащий разряд.

В процессе преобразования следует учитывать, что частное от деления 1 на 2 составляет нуль, а остаток равен 1.

Результат: 5710=1110012.

 

2. Преобразуем десятичное число 134 в двоичное число.

Шаг                     Деление               Частное               Остаток

1                 134/2                             67                        0                 (МЗР)

2                 67/2                     33                        1

3                 33/2                     16                        1

4                 16/2                     8                          0

5                 8/2                       4                          0

6                 4/2                       2                          0

7                 2/2                       1                          0

8                 1/2                       0                          1                 (СЗР)

Результат: 13410=100001102

 

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

шестнадцатеричную

Практическое использование шестнадцатеричной системы объясняется тем, что число 16 есть число 2 в четвёртой степени. Поэтому шестнадцатеричную цифру используют как средство сокращённой записи 4-разрядного двоичного кода. Общая идея преобразования аналогична рассмотренной выше.

1.     Разделить десятичное число А на 16. Запомнить частное q и остаток а.

2.   Если в результате шага 1 частное q0, то принять его за новое делимое, записать остаток и вернутся к пункту 1.

3.   Если частное q=0, то прекратить работу алгоритма.

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

 

1.Требуется преобразовать число 3276710 в 16-ную систему счисления.

Шаг                     Деление               Частное               Остаток

1                 32767/16             2047                    1510=F16                         (МЗР)

2                 2047/16               127                      1510=F16 

3                 127/16                 7                          1510=F16 

4                 7/16                     0                         7                          (СЗР)

Результат: 3276710=7FFF16

 

2.Преобразовать число 634.

Шаг                     Деление               Частное               Остаток

1                 634/16                 39                        101016              (МЗР)

2                 39/16                             2                          7

3                 2/16                     0                          2                          (СЗР)

Результат: 63410=27А16

 

                                    Перевод дробных чисел.

Любое дробное число в системе счисления с основанием p можно представить в виде

A(p)=an-1*pn-1+an-2*pn-2+…+a1*p1+a0*p0+a-1*p-1+a-2*p-2+…+a-m*p-m

Рассмотрим операции перевода чисел на примерах.

Перевести в десятичное представление дроби в двоичной системе счисления.

Как и в десятичной системе в двоичной системе для отделения дробной части от целой используется точка. Каждая позиция справа от этой точки имеет свой  вес – вес разряда дробной части числа. Значение веса в этом случае равно основанию двоичной системы, возведённому в отрицательную степень. Такие веса – это дроби 1/2, 1/4, 1/8, 1/16, 1/32 и т.д., которые могут быть записаны как 2-1, 2-2, 2-3, 2-4 и т.д.

Преобразовать число:

110100,01001011=1*25+1*24+0*23+1*22+0*21+0*20+0*2-1+1*2-2+   

+0*2-3+0*2-4+1*2-5+0*2-6+1*2-7+1*2-8

 

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

1DF2,A1E416=1*163+13*162+15*161+2*160+10*16-1+1*16-2+14*16-3+

+4*16-4

 

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

Общий алгоритм перевода десятичной дроби в другую систему счисления можно представить следующей последовательностью шагов.

1)    Выделить целую часть десятичной дроби и выполнить её перевод в выбранную систему счисления по алгоритмам, рассмотренным выше;

2)    Выделить дробную часть и умножить её на основание выбранной новой системы счисления;

3)    В полученной после умножения десятичной дроби выделить целую части и принять её в качестве значения первого после запятой разряда числа в новой системе счисления;

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

Пример: Преобразовать десятичное число 0,3437510 в двоичное:

2*0,34375=0,6875                 0       (СЗР)

2*0,6875=1,375                     1

2*0,375=0,75                         0

2*0,75=1,5                                      1

2*0,5=1                                  1       (МЗР)

Результат: 0,3437510=0,010112

 

Перевести в двоичную систему счисления десятичную дробь108,406

1)    Переводят целую часть десятичной дроби в двоичную систему счисления:

10810=11011002

2)    Переведём дробную часть в двоичную систему:

2*0,406=0,812                     0       (СЗР)

2*0,812=1,624                     1

2*0,624=1,248                     1

2*0,248=0,496                     0

2*0,496=0,992                     0

2*0,992=1,984                     1

2*0,984=1,968                     1

2*0,968=1,936                     1

…………………

Результат перевода следующий: 108,406101101100,011001112есс ная часть значения, полученного послеумножения, равна нулю, то прекратить процесс перевода! оритмам, рассмотренным выше;

 

Рассмотрим следующий пример: преобразовать десятичное число 634,328125 в шестнадцатеричное

63410=27А16

Перевод дробной части

16*0,328125=5,25     5(СЗР)

16*0,25=4,0               4(МЗР)

0,32812510=0,5416

Общий результат: 634,32812510=27А,5416

                                    

 

                                    Двоичная арифметика

 

Сложение и вычитание двоичных чисел без знака.

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

Рассмотрим пример:

Слагаемое  99…………………01100011

+

Слагаемое  95…………………01011111

Сумма        194………………..11000010

Рассмотренный пример свидетельствует о простоте процедуры двоичного сложения. Единственное неудобство, присущее двоичным операциям - громоздкость записи больших чисел в двоичной  форме, что вызывает множество переносов из одного разряда в другой. Рассмотрим таблицу 1. Результат сложения двоичных цифр одноименных разрядов находится на пересечении соответствующих строки и столбца. Если пересечение происходит на тёмном фоне, то имеет место перенос единицы в ближайший старший разряд.

В ближайший старший разряд.

+

Слагаемое

0

1

Слагаемое

0

0

1

1

1

0

Двоичное вычитание подобно десятичному. Таблица 2 иллюстрирует правило двоичного вычитания. Из таблицы 2 следует, что, если уменьшаемое меньше вычитаемого, то имеет место заём. Это происходит в том случае, когда из нуля, содержащегося в двоичном разряде, вычитается единица. Благодаря заёму единицы из ближайшего старшего разряда в одноимённом разряде результата получается единица.

 

-

Вычитаемое

0

1

Уменьшаемое

0

0

1

1

1

0

 

Пример:

               Уменьшаемое  109………………..01101101

                                                                      -

               Вычитаемое      49………………...00110001

                Разность            60………………..00111100

 

 

 

studizba.com

Отправить ответ

avatar
  Подписаться  
Уведомление о