Сколько будет число 15 в двоичной системе?
Чтоб перевести число в десятичной системе счисление наберите это число в калькуляторе Windows (Пуск-Все програмы-стандартные-калькулятор) . После этого под строкой ввода найдите кнопки Hex(шестнадцатиричная) , Dec(десятичная) , Oct(восьмеричная) , Bin(двоичная) . Выберите нужную систему и нажмите мишью. В окне ввода появитса число в выбраной системе счисления. Число 15 в двоичной системе 1111.
15 в двоичной системе будет 1111
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, основание шестнадцатеричной системы счисления:
Делим десятичное число Ана16. ЧастноеQзапоминаем для следующего шага, а остатокaзаписываем какмладшийбит шестнадцатеричного числа.
Если частное qне равно0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток записывается в разряды шестнадцатеричного числа в направлении от
младшегобита кстаршему.Алгоритм продолжается до тех пор, пока в результате выполнения шагов 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.
Перевод чисел из двоичной системы в восьмеричную и шестнадцатеричную
При обработке данных и вычислениях одной из наиболее часто встречающихся задач является перевод чисел из одной системы счисления в другую. Рассмотрим простейшие алгоритмы перевода положительных чисел из двоичной системы в восьмеричную и шестнадцатеричную.
Пусть требуется перевести двоичное число
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 1010=А16 (МЗР)
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