Перевод чисел из одной системы счисления в другую онлайн. Как перевести из шестнадцатиричной системы счисления в двоичную
Перевод из шестнадцатеричной в двоичную систему счисления на Си
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
Перевод чисел из одной системы счисления в другую онлайн
Результат уже получен!
Системы счисления
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:
6 | 3 | 7 | 2 | |
позиция | 3 | 2 | 1 | 0 |
Тогда число 6372 можно представить в следующем виде:
6372=6000+300+70+2 =6·103+3·102+7·101+2·100.
Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.
Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:
число | 1 | 2 | 8 | 7 | . | 9 | 2 | 3 |
позиция | 3 | 2 | 1 | 0 | -1 | -2 | -3 |
Тогда число 1287.923 можно представить в виде:
1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·103 +2·102 +8·101+7·100+9·10-1+2·10-2+3·10-3.
В общем случае формулу можно представить в следующем виде:
Цn·sn+Цn-1·sn-1+...+Ц1·s1+Ц0·s0+Д-1·s-1+Д-2·s-2+...+Д-k·s-k
(1)
где Цn-целое число в позиции n, Д-k- дробное число в позиции (-k), s - система счисления.
Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр {0,1,2,3,4,5,6,7,8,9}, в восьмеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7}, в двоичной системе счисления - из множества цифр {0,1}, в шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.
В таблице Таб.1 представлены числа в разных системах счисления.
Система счисления | |||
10 | 2 | 8 | 16 |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
Перевод чисел из одной системы счисления в другую
Для перевода чисел с одной системы счисления в другую, проще всего сначала перевести число в десятичную систему счисления, а затем, из десятичной системы счисления перевести в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.
Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:
1·26+0·25+1·24+1·23+1·22 +0·21+1·20+0·2-1+0·2-2+1·2-3 =64+16+8+4+1+1/8=93.125
Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:
Пример 3. Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:
Здесь A -заменен на 10, B - на 11, C- на 12, F - на 15.
Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления нужно переводить отдельно целую часть числа и дробную часть числа.
Целую часть числа переводится из десятичной СС в другую систему счисления - последовательным делением целой части числа на основание системы счисления (для двоичной СС - на 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 | ||||
0 | 2 | 1 | |||||
0 |
Рис. 1
Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111. Следовательно можно записать:
15910=100111112.
Пример 5. Переведем число 615 из десятичной СС в восьмеричную СС.
615 | 8 | ||
608 | 76 | 8 | |
7 | 72 | 9 | 8 |
4 | 8 | 1 | |
1 |
Рис. 2
При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147(см. Рис. 2). Следовательно можно записать:
61510=11478.
Пример 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 | 0.428 | |
x | 2 | |
0 | 0.856 | |
x | 2 | |
1 | 0.712 | |
x | 2 | |
1 | 0.424 | |
x | 2 | |
0 | 0.848 | |
x | 2 | |
1 | 0.696 | |
x | 2 | |
1 | 0.392 |
Рис. 4
Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011.
Следовательно можно записать:
0.21410=0.00110112.
Пример 8. Переведем число 0.125 из десятичной системы счисления в двоичную СС.
0.125 | ||
x | 2 | |
0 | 0.25 | |
x | 2 | |
0 | 0.5 | |
x | 2 | |
1 | 0.0 |
Рис. 5
Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:
0.12510=0.0012.
Пример 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. Следовательно имеем:
0.21410=0.36C8B416.
Пример 10. Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.
0.512 | ||
x | 8 | |
4 | 0.096 | |
x | 8 | |
0 | 0.768 | |
x | 8 | |
6 | 0.144 | |
x | 8 | |
1 | 0.152 | |
x | 8 | |
1 | 0.216 | |
x | 8 | |
1 | 0.728 |
Рис. 7
Получили:
0.51210=0.4061118.
Пример 11. Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:
159.12510=10011111.0012.
Пример 12. Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим:
19673.21410=4CD9.36C8B416.
matworld.ru
Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатиричную и обратно
Для перевода целого двоичного числа в восьмеричноеего нужно разбить на группы по три цифры, справа налево, а затем преобразовать каждую группу в восьмеричную цифру. Если в последней левой группе окажется меньше, чем три разряда, то необходимо ее дополнить слева нулями.
Переведем таким способом двоичное число 1010012в восьмеричное:
101 0012 => 1•22+0•21+1•200•22+0•21+1•20 => 518.
Для упрощения перевода можно заранее подготовить таблицу преобразования двоичных триад (групп по 3 цифры) в восьмеричные цифры.
Двоичные триады | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Восьмиричные цифры | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Для перевода дробной части числа из восьмеричной системы в двоичную, необходимо также выделить в дробной части триады, только слева направо от запятой. Если справа будет нулей до триады не хватать, то их надо дописать, а затем каждую триаду заменить восьмеричным эквивалентом.
Для перевода целого двоичного числа в шестнадцатеричноеего нужно разбить на группы по четыре цифры (тетрады), начиная справа, и, если в последней левой группе окажется меньше разрядов, дополнить ее слева нулями. Для переводадробного двоичного числа в шестнадцатеричноенеобходимо разбить его на тетрады слева направо и, если в последней правой группе окажется меньше, чем четыре разряда, то необходимо ее дополнить справа нулями. Процедура перевода такая же, как и для восьмеричной системы, только каждая шестнадцатеричная цифра представляется 4-мя двоичными, например: 1 – 0001; 3 – 0011; 9 – 1001; A – 1010; D – 1101; F – 1111
Для перевода чисел из восьмеричной и шестнадцатеричной систем счисления в двоичнуюнеобходимо цифры числа преобразовать в группы двоичных чисел. Для перевода из восьмеричной системы в двоичную каждую цифру числа надо преобразовать в группу из трех двоичных разрядов (триаду), а при преобразовании шестнадцатеричного числа – в группу из четырех разрядов (тетраду).
Арифметические операции в позиционных системах счисления
Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же хорошо известным вам правилам.
Сложение
Рассмотрим сложение чисел в двоичной системе счисления. В его основе лежит таблица сложения одноразрядных двоичных чисел:
0 + 0 = 00 + 1 = 01 + 0 = 11 + 1 = 10 |
Важно обратить внимание на то, что при сложении двух единиц происходит переполнение разряда и производится перенос в старший разряд. Переполнение разряда наступает тогда, когда значение числа в нем становится равным или большим основания. Для двоичной системы счисления, это число равно двум. Сложение многоразрядных двоичных чисел происходит в соответствии с вышеприведенной таблицей сложения с учетом возможных переносов из младших разрядов в старшие. В качестве примера сложим в столбик двоичные числа 1102и112.
Проверим правильность вычислений сложением в десятичной системе счисления. Переведем двоичные числа в десятичную систему счисления и затем их сложим. 1102 = 1•22 + 1•21 + 0•20 = 610112 = 1•21 + 1•20 = 310610 + 310 = 910
Теперь переведем результат двоичного сложения в десятичное число. 10012 = 1•23 + 0•22 + 0•21 + 1•20 = 910
Сравним результаты, сложение выполнено правильно.
studfiles.net
Как перевести из двоичного года в шестнадцатиричную систему счисления???
В результате B3A6 Как это делается? 1) Делим число на группы цифр по 4: 1101 0011 1010 0110 2) Для каждой группы высчитываем.. . Справа налево. Множим первую цифру справа на 1, вторую на 2, третью на 4, и четвёртую на 8 Первая группа (0110): 0*1 + 1*2 + 1*4 + 0*8=6 Вторая группа (1010): 0*1 + 1*2 + 0*4 + 0*8 = 10. Десять в 16-ричной системе обозначается буквой A Третья группа (0011): 1*1 + 1*2 + 0*4 + 0*8 = 3 Четвёртая группа (1101): 1*1 + 0*2 + 1*4 + 1*8 = 13. Тринадцать в 16-ричной системе обозначается буквой B 3) Теперь просто все их записываем.. . B3A6
Используй калькулятор в Винде. ( все программы-стандартные-калькулятор) Выбери инженерный Вид, и он сам тебе из любой системы в любую переводить будет.
запускаешь стандартный калькулятор виндовс щелкаешь вид--> инженерный вид--> шестнадцатеричный (hex) число в двоичной системе не стирая число переходи в режим hex(для шестнадцатеричной системы) появится тоже число но в шестнадцатеричной системе аналогично и с другими системами
touch.otvet.mail.ru
Как перевести из шестнадцатиричной системы счисления в восьмеричную?
Доброго времени суток. Ну а как нет под рукой этого инженерного вида? И компа нет? Здесь все просто. Достаточно знать, что в двоичной системе 0 + 0 = 0, 0 + 1 = 1 и 1 + 1 = 10 (имеет место перенос в старший разряд) и можно построить любую двоичную таблицу. Далее, надо знать, что до 9 числа в десятичной и шестнадцатиричной системах совпадают, а дальше в шестнадцатирмчной идут A, B, C, D, E и F. Все. Сам перевод выполняется еще легче и чисто механически. Не надо ничего множить, делить. Для 16 -> 8 число расписывается по тетрадам, а затем читается по триадам. Для 8->16, наоборот, сначала расписывается по триадам, а читается по тетрадам. Переход тетрада - триада выполняется справа на лево. AD34(16) -> 1010 1101 0011 0100 -> 1 010 110 100 110 100 -> 126464(8) Удачи!
Сначала процессом умножения переведи в десятичную 1 в 8-ичной= 1*8 11=1*8*8+ 1*8=72 А потом процессом деления в 16-ичную
<a rel="nofollow" href="http://en.wikipedia.org/wiki/Octal#Octal_.E2.80.93_Hexadecimal_conversion" target="_blank">http://en.wikipedia.org/wiki/Octal#Octal_.E2.80.93_Hexadecimal_conversion</a> Таблица перевода чисел 0hex = 0dec = 0oct 0 0 0 0 1hex = 1dec = 1oct 0 0 0 1 2hex = 2dec = 2oct 0 0 1 0 3hex = 3dec = 3oct 0 0 1 1 4hex = 4dec = 4oct 0 1 0 0 5hex = 5dec = 5oct 0 1 0 1 6hex = 6dec = 6oct 0 1 1 0 7hex = 7dec = 7oct 0 1 1 1 8hex = 8dec = 10oct 1 0 0 0 9hex = 9dec = 11oct 1 0 0 1 Ahex = 10dec = 12oct 1 0 1 0 Bhex = 11dec = 13oct 1 0 1 1 Chex = 12dec = 14oct 1 1 0 0 Dhex = 13dec = 15oct 1 1 0 1 Ehex = 14dec = 16oct 1 1 1 0 Fhex = 15dec = 17oct 1 1 1 1
1. методы уже дали. 2. используй CALC.exe - вид - Инженерный :)
touch.otvet.mail.ru