А в 16 системе счисления: Калькулятор систем счисления
Содержание
Калькулятор систем счисления
Данный конвертер переводит числа между наиболее популярными системами счисления: десятичной, двоичной, восьмеричной, шестнадцатеричной.
Система счисления — это способ представления числа. Одно и то же число может быть представлено в различных видах. Например, число 200 в привычной нам десятичной системе может иметь вид 11001000 в двоичной системе, 310 в восьмеричной и C8 в шестнадцатеричной.
Существуют и другие системы счисления, но мы не стали включать их в конвертер из-за низкой популярности.
Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
20010 = 110010002 = 3108 = C816
Кратко об основных системах счисления
Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.
Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.
Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.
Шестнадцатеричная система счисления. Наиболее распространена в современных компьютерах. При помощи неё, например, указывают цвет. #FF0000 — красный цвет. Для записи числа используются цифры от 0 до 9 и буквы A,B,C,D,E,F, которые соответственно обозначают числа 10,11,12,13,14,15.
Перевод в десятичную систему счисления
Преобразовать число из любой системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на Xn, где X — основание исходного числа, n — номер разряда. Затем суммировать полученные значения.
abcx = (a*x2 + b*x1 + c*x0)10
Примеры:
5678 = (5*82 + 6*81 + 7*80)10 = 37510
1102 = (1*22 + 1*21 + 0*20)10 = 610
A516 = (10*161 + 5*160)10 = 16510
Перевод из десятичной системы счисления в другие
Делим десятичное число на основание системы, в которую хотим перевести и записываем остатки от деления. Запишем полученные остатки в обратном порядке и получим искомое число.
Переведем число 37510 в восьмеричную систему:
375 / 8 = 46 (остаток 7)
46 / 8 = 5 (остаток 6)
5 / 8 = 0 (остаток 5)
Записываем остатки и получаем 5678
Перевод из двоичной системы в восьмеричную
Способ 1:
Для перевода в восьмеричную систему нужно разбить двоичное число на группы по 3 цифры справа налево. В последней (самой левой) группе вместо недостающих цифр поставить слева нули. Для каждой полученной группы произвести умножение каждого разряда на 2n, где n — номер разряда.
11012 = (001) (101) = (0*22 + 0*21 + 1*20) (1*22 + 0*21 + 1*20) = (0+0+1) (4+0+1) = (1) (5) = 158
Способ 2:
Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:
Триада | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
101110102 = (010) (111) (010) = 2728
Перевод из двоичной системы в шестнадцатеричную
Способ 1:
Разбиваем число на группы по 4 цифры справа налево. Последнюю (левую) группу дополним при необходимости ведущими нулями. Внутри каждой полученной группы произведем умножение каждой цифры на 2n, где n — номер разряда, и сложим результаты.
110102 = (0001) (1010) = (0*23 + 0*22 + 0*21 + 1*20) (1*23 + 0*22 + 1*21 + 0*20) = (0+0+0+1) (8+0+2+0) = (1) (10) = 1A16
Способ 2:
Также как и в первом способе разбиваем число на группы по 4 цифры. Заменим полученные группы (тетрады) на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:
Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
1011111002 = (0001) (0111) (1100) = 17C16
Перевод из восьмеричной системы в двоичную
Способ 1:
Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.
Возьмем число 438.
Делим последовательно 4 на 2 и получаем остатки 0,0,1. Записываем их в обратном порядке. Получаем 100.
Делим последовательно 3 на 2 и получаем остатки 1,1. Записываем их в обратном порядке и дополняем ведущими нулями до трех разрядов. Получаем 011.
Записываем вместе и получаем 1000112
Способ 2:
Используем таблицу триад:
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Триада | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.
3518 = (011) (101) (001) = 0111010012 = 111010012
Перевод из шестнадцатеричной системы в двоичную
Способ 1:
Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.
Способ 2:
Используем таблицу тетрад:
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.
D816 = (1101) (1000) = 110110002
Перевод из восьмеричной системы в шестнадцатеричную и наоборот
Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.
Перевод чисел из одной системы счисления в другую онлайн
С помощю этого онлайн калькулятора можно перевести целые и дробные числа из одной системы счисления в другую. Дается подробное решение с пояснениями. Для перевода введите исходное число, задайте основание сисемы счисления исходного числа, задайте основание системы счисления, в которую нужно перевести число и нажмите на кнопку «Перевести». Теоретическую часть и численные примеры смотрите ниже.
Результат уже получен!
Перевод целых и дробных чисел из одной системы счисления в любую другую − теория, примеры и решения
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 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 представлены числа в разных системах счисления.
Таблица 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.
Буквы в 16 ричной системе счисления. Для чего нужна шестнадцатеричная система счисления
Возникла в древнем Вавилоне. В Индии система работает в виде позиционной десятичной нумерации с использованием нуля, у индусов данную систему чисел позаимствовала арабская нация, у них, в свою очередь, взяли европейцы. В Европе эту систему стали называть арабской.
Позиционная система
счисления
— значение всех цифр зависит от позиции (разряда) данной цифры в числе.
Примеры
, стандартная десятичная система счисления — это позиционная система. Допустим, дано число
453
. Цифра
4
обозначает сотни и соответствует числу
400, 5
— кол-во десятков и соответствует значению
50
, а
3
— единицы и значению
3
. Легко заметить, что с увеличением разряда увеличивается значение. Таким образом, заданное число запишем в виде суммы
400+50+3=453.
Шестнадцатеричная система счисления.
Шестнадцатеричная система счисления
(шестнадцатеричные числа) — позиционная система счисления. Основанием шестнадцатеричной системы счисления
является число 16.
Записывая числа в восьмеричной системе счисления мы получаем довольно компактные выражения, однако в шестнадцатеричной системе мы получаем выражения более компактными.
Первыми десятью цифрами из шестнадцати шестнадцатеричных цифрах является стандартный интервал 0 — 9
, последующие шесть цифр выражают при помощи первых букв латинского алфавита: A
,
B
,
C
,
D
,
E
,
F
. Перевод из шестнадцатеричной системы в двоичную систему и в обратную сторону делают аналогично процессу для восьмеричной системы.
Применение шестнадцатеричной системы счисления.
Шестнадцатеричную систему счисления довольно хорошо используют в современных компьютерах, например
с ее помощью указывают цвет: #FFFFFF
— белый цвет.
Перевод чисел из одной системы счисления в другую.
Перевод чисел из шестнадцатеричной системы в десятичную.
Что бы перевести шестнадцатеричное число в десятичное , нужно заданное число привести к виду суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Например
, переведем шестнадцатеричное число 5A3
в десятичное. Здесь 3
цифры. Исходя их выше сказанного правила, приведем его к виду суммы степеней с основанием 16:
5A3 16 = 3·16 0 +10·16 1 +5·16 2 = 3·1+10·16+5·256 = 3+160+1280 = 1443 10
Перевод чисел из двоичной системы в шестнадцатеричную и наоборот.
Для перевода многозначного двоичного числа в шестнадцатеричную систему необходимо разделить его на тетрады справа налево и поменять все тетрады соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную необходимо поменять каждую все цифры на соответствующие тетрады из таблицы перевода, которую вы найдете ниже.
Например
:
010110100011 2 = 0101 1010 0011 = 5A3 16
Таблица перевода чисел.
Алгоритм перевода чисел из одной системы счисления в другую.
1. Из десятичной системы счисления:
- делим число на основание переводимой системы счисления;
- находим остаток от деления целой части числа;
- записываем все остатки от деления в обратном порядке;
2. Из двоичной системы счисления:
- для перевода в десятичную систему счисления находим сумму произведений основания 2 на соответствующую степень разряда;
- для перевода числа в восьмеричную разбиваем число на триады.
Например, 1000110 = 1 000 110 = 1068
- для перевода числа из двоичной системы счисления в шестнадцатеричную разбиваем число на группы по 4 разряда.
Например, 1000110 = 100 0110 = 4616.
Таблицы для перевода:
Двоичная СС | Шестнадцатеричная СС |
0000 | |
0001 | |
0010 | |
0011 | |
0100 | |
0101 | |
0110 | |
0111 | |
1000 | |
1001 | |
1010 | |
1011 | |
1100 | |
1101 | |
1110 | |
1111 |
Шестнадцатеричная система счисления
, на сегодняшний день является наиболее популярным средством компактной записи двоичных чисел. Очень широко используется при разработке и проектировании цифровой техники.
Как следует из названия, основанием данной системы является число шестнадцать 16
или в шестнадцатеричной системе 10
16 .
Чтобы не было путаницы, при записи чисел в системах счисления отличных от десятичных, справа внизу от основной записи числа будем указывать основание системы счисления.
Раз основанием системы является число шестнадцать, значит, для изображения чисел нам потребуется шестнадцать цифр.
Первые десять цифр берутся из, привычной нам, десятичной системы (0,1,..,8,9) и еще добавляются шесть букв латинского алфавита (a,b,c,d,e,f) . Например в шестнадцатеричном числе 3f7c2 буквы «f» и «c» являются шестнадцатеричными цифрами.
Счет в шестнадцатеричной системе происходит аналогично счету в десятичной. Давайте попробуем считать и записывать числа конструируя их из имеющихся шестнадцати цифр:
Ноль
— 0
;
Один
— 1
;
Два
— 2
;
…
и так далее…
…
Восемь
— 8
;
Девять
— 9
;
Десять
— a
;
Одиннадцать
— b
;
Двенадцать
— c
;
Тринадцать
— d
;
Четырнадцать
— e
;
Пятнадцать
— f
;
А что делать дальше? Все цифры кончились. Как же изобразить число Шестнадцать?
Поступим аналогично тому как мы поступали в десятичной системе. Там мы вводили понятие десятка, здесь же введем понятие «шестнадцать»
и скажем, что шестнадцать — это одина «шестнадцать» и ноль единиц. А это уже можно и записать — «10 16 «.
Итак, Шестнадцать
— 10
16 (одна «шестнадцать», ноль единиц)
Семнадцать
— 11
16 (одна «шестнадцать», одна единица)
…
и так далее…
…
Двадцать пять
— 19
16 (одна «шестнадцать», девять единиц)
Двадцать шесть
— 1a
16 (одна «шестнадцать», десять единиц)
Двадцать семь
— 1b
16 (одна «шестнадцать», одинадцать единиц)
…
и так далее…
…
Тридцать
— 1e
16 (одна «шестнадцать», четырнадцать единиц)
Тридцать один
— 1f
16 (одна «шестнадцать», пятнадцать единиц)
Тридцать два
— 20
16 (две «шестнадцать», ноль единиц)
Тридцать три
— 21
16 (две «шестнадцать», одна единица)
…
и так далее…
…
Двести пятьдесят пять
— ff
16 (пятнадцать по «шестнадцать», пятнадцать единиц)
Двести пятьдесят шесть
— 100
16 (одна «Двести пятьдесят шесть», ноль по «шестнадцать», ноль единиц)
Двести пятьдесят семь
— 101
16 (одна «Двести пятьдесят шесть», ноль по «шестнадцать», одна единица)
Двести пятьдесят восемь
— 102
16 (одна «Двести пятьдесят шесть», ноль по «шестнадцать», две единицы)
…
и так далее…
…
Всегда, когда у нас исчерпался набор цифр для отображения следующего числа, мы вводим более крупные единицы счета (т.е. считаем по «шестнадцать», по «Двести пятьдесят шесть» и т.д.) и записываем число с удлинением на один разряд.
Рассмотрим число 3e2c
16 записанное в шестнадцатиричной системе счисления. Про него можно сказать, что оно содержит:
три по четыре тысячи девяносто шесть, «e» (четырнадцать) по двести пятьдесят шесть, два по шестнадцать и «c» (двенадцать) единиц. И получить его значение через входящие в него цифры можно следующим образом.
3e2c
16 = 3
*4096+14
*256+2
*16+12
*1, здесь и далее знак * (звездочка) означает умножение.
Но ряд чисел 4096, 256, 16, 1 есть не что иное, как целые степени числа шестнадцать (основания системы счисления) и поэтому можно записать:
3e2c
16 = 3
*16 3 +14
*16 2 +2
*16 1 +12
*16 0
Подобным образом для шестнадцатиричной дроби (дробного числа) например:
0.5a2
16 про него можно сказать, что оно содержит: пять шестнадцатых, «a» (десять) двести пятьдесят шестых и две четыретысячи девяносто шестых долей. И его значение можно вычислить следующим образом:
0.5a2
16 = 5
*(1/16) + 10
*(1/256) + 2
*(1/4096)
И здесь ряд чисел 1/16; 1/256 и 1/4096 есть не что иное, как целые степени числа шестнадцать и мы также можем записать:
0.5a2
16 = 5
*16 -1 + 10
*16 -2 + 2
*16 -3
Для смешанного числа 7b2.1f9 аналогичным образом можем записать:
7b2.1f9
= 7
*16 2 +11
*16 1 +2
*16 0 +1
*16 -1 +15
*16 -2 +9
*16 -3
Пронумеруем разряды целой части некоторого шестнадцатиричного числа, справа налево, как 0,1,2…n (нумерация начинается с нуля!). А разряды дробной части, слева направо, как -1,-2,-3…-m, то значение некоторого шестнадцатиричного числа может быть вычислено по формуле:
N = d n 16 n +d n-1 16 n-1 +…+d 1 16 1 +d 0 16 0 +d -1 16 -1 +d -2 16 -2 +…+d -(m-1) 16 -(m-1) +d -m 16 -m
Где: n
— количество разрядов в целой части числа минус единица;
m
— количество разрядов в дробной части числа
d i
— цифра стоящая в i
-м разряде
Эта формула называется формулой поразрядного разложения шестнадцатиричного числа, т.е. числа записанного в шестнадцатиричной системе счисления. Если мы в этой формуле заменим число шестнадцать на некоторое произвольное число q
, то получим формулу разложения для числа записанного в q-й
системе счисления, т.е. с основанием q
:
N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q -(m-1) +d -m q -m
По этой формуле всегда можно вычислить значение числа записанного в любой позиционной системе счисления с основанием q
.
С другими системами счисления можно познакомиться на нашем сайте по следующим ссылкам.
Для представления чисел в микропроцессоре используется двоичная система счисления
.
При этом любой цифровой сигнал может иметь два устойчивых состояния: «высокий уровень» и «низкий уровень». В двоичной системе счисления для изображения любого числа используются две цифры, соответственно: 0 и 1. Произвольное число x=a n a n-1 ..a 1 a 0 ,a -1 a -2 …a -m
запишется в двоичной системе счисления как
x = a n ·2 n +a n-1 ·2 n-1 +…+a 1 ·2 1 +a 0 ·2 0 +a -1 ·2 -1 +a -2 ·2 -2 +…+a -m ·2 -m
где a i
— двоичные цифры (0 или 1).
Восьмеричная система счисления
В восьмеричной системе счисления базисными цифрами являются цифры от 0 до 7. 8 единиц младшего разряда объединяются в единицу старшего.
Шестнадцатеричная система счисления
В шестнадцатеричной системе счисления базисными цифрами являются цифры от 0 до 15 включительно. Для обозначения базисных цифр больше 9 одним символом кроме арабских цифр 0…9 в шестнадцатеричной системе счисления используются буквы латинского алфавита:
10 10 = A 16 12 10 = C 16 14 10 = E 16
11 10 = B 16 13 10 = D 16 15 10 = F 16 .
Например, число 175 10 в шестнадцатеричной системе счисления запишется как AF 16 . Действительно,
10·16 1 +15·16 0 =160+15=175
В таблице представлены числа от 0 до 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 |
16 | 10000 | 20 | 10 |
Двоично-восьмеричные и двоично-шестнадцатеричные преобразования
Двоичная система счисления удобна для выполнения арифметических действий аппаратными средствами микропроцессора, но неудобна для восприятия человеком, поскольку требует большого количества разрядов. Поэтому в вычислительной технике помимо двоичной системы счисления широкое применение нашли восьмеричная и шестнадцатеричная системы счисления для более компактного представления чисел.
Три разряда восьмеричной системы счисления реализуют все возможные комбинации восьмеричных цифр в двоичной системе счисления: от 0 (000) до 7(111). Чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда (триады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от него тоже можно добавить незначащие нули до заполнения всех триад. Затем каждая триада заменяется восьмеричной цифрой.
Пример:
Преобразовать число 1101110,01 2 в восьмеричную систему счисления.
Объединяем двоичные цифры в триады справа налево. Получаем
001 101 110,010 2 = 156,2 8 .
Чтобы перевести число из восьмеричной системы в двоичную, нужно каждую восьмеричную цифру записать ее двоичным кодом:
156,2 8 = 001 101 110,010 2 .
Четыре разряда шестнадцатеричной системы счисления реализуют все возможные комбинации шестнадцатеричных цифр в двоичной системе счисления: от 0 (0000) до F(1111). Чтобы преобразовать двоичное число в шестнадцатеричное, нужно объединить двоичные цифры в группы по 4 разряда (тетрады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от нее тоже нужно добавить незначащие нули до заполнения всех тетрад. Затем каждая тетрада заменяется шестнадцатеричной цифрой.
Пример:
Преобразовать число 1101110,11 2 в шестнадцатеричную систему счисления.
Объединяем двоичные цифры в тетрады справа налево. Получаем
0110 1110,1100 2 = 6E,C 16 .
Чтобы перевести число из шестнадцатеричной системы в двоичную, нужно каждую шестнадцатеричную цифру записать ее двоичным кодом.
Привычная для человека система счисления – десятичная. В ее основу входят десять цифр от 0 до 9. Шестнадцатеричную систему отличает наличие в ней первых шести букв латинского алфавита для записи чисел помимо основных цифр. То есть после цифры 9 следует символ «A», который соответствует числу 10 для десятичной системы. Соответственно, F в шестнадцатеричной системе – это 16 в десятичной. Использование шестнадцати символов в системе – неслучайный выбор.
Единица информации – бит. Восемь бит образуют байт. Существует понятие, как машинное слово – это единица данных, представляющая собой два , то есть шестнадцать бит. Таким образом, используя шестнадцать различных символов, можно описывать любую информацию, которая при обмене данных будет наименьшей частицей. С ними можно производить любые арифметические действия, результат, соответственно, получится тоже в шестнадцатеричной системе.
Для того чтобы отличать, что число записано в шестнадцатеричной системе, после него записывают букву «h» или нижний индекс «16».
Применение
Наиболее широкое применение шестнадцатеричной системы счисления – это коды ошибок программных продуктов, например, операционной системы. Числа, заложенные в этих кодах, стандартизированы. Имея специальную таблицу, всегда можно определить, что именно означает та или иная ошибка.
В языках низкого уровня, максимально приближенным к машинным кодам шестнадцатеричная система применяется для написания программ. Многие программисты используют ее и при работе с языками высокого уровня, потому что числа в этой системе при помощи специальной таблицы соответствия легко переводятся в двоичную систему, на которой основана работа всей цифровой техники. Любая информация в компьютере, будь то музыкальный файл или текстовый документ, после трансляции представлена последовательностью исходного двоичного кода, а его удобнее просматривать представленным символами шестнадцатеричной системы.
Также одно из применений шестнадцатеричных символов – описание цветовых схем, то есть три компонента R, G, B описываются соответствующим данной системе способом. Данный подход к записи получил название шестнадцатеричный цвет
Возможность просмотреть программу в шестнадцатеричном коде позволяет отладить ее, внести изменения, а злоумышленниками данный подход используется для взлома программ.
Для написания
программ на Ассемблере, необходимо
разобраться с шестнадцатеричной
системой счисления. Ничего
сложного в ней нет. Мы используем в
жизни десятичную систему. Уверен,
что вы все ее знаете, поэтому я
постараюсь объяснить
шестнадцатеричную систему, проводя
аналогию с десятичной.
Итак, в десятичной
системе если мы к какому-нибудь
числу справа добавим нуль, то это
число увеличится в 10 раз. Например: 1
х 10 = 10; 10 х 10 = 100; 100 х 10 = 1000 и т.д. В
этой системе мы используем цифры от
0 до 9, т.е. десять разных цифр
(собственно, поэтому она и
называется десятичная).
В
шестнадцатеричной системе мы
используем, соответственно,
шестнадцать «цифр». Я специально
написал слово «цифр» в кавычках,
т.к. в ней используются не только
цифры. Да и в самом деле как так?
Объясняю: от 0 до 9 мы считаем так же,
как и в десятичной, а вот дальше
будет так: A, B, C, D, E, F. Число F, как не
трудно
посчитать,
будет равно 15 в десятичной системе
(см. табл. 1).
Десятичное | Шестнадцатеричное |
Таблица 1. Десятичная и шестнадцатеричная системы.
Т.о., если мы к
какому-нибудь числу в
шестнадцатеричной системе добавим
справа нуль, то это число
увеличится в
16
раз.
Пример 1:
1 х
16 = 10; 10 х 16 = 100; 100 х 16 = 1000 и т.д.
Вы смогли
отличить в Примере 1
шестнадцатеричные числа от
десятичных? А из этого ряда: 10, 12, 45,
64, 12, 8, 19? Это могут быть как
шестнадцатеричные, так и
десятичные. Для того, чтобы не было
путаницы, и компьютер смог бы
однозначно отличить одни числа от
других, в Ассемблере принято после
шестнадцатеричного числа ставить
символ h или H (H это
сокращение от англ.
hexadecimal
(шестнадцатеричное).
Для краткости его иногда называют
просто
Hex
)
. А после десятичного
ничего не ставить. Т.к. числа от 0 до 9
в обоих системах имеют одинаковые
значения, то числа, записанные как 5
и 5h одно и тоже.
Т.о. Пример 1 (см.
выше) правильнее будет записать
так: 1 х 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h.
Либо так: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h =
1000h.
Для чего нужна
шестнадцатеричная система, мы
рассмотрим в последующих выпусках.
А в данный момент для нашего
примера программы, который будет
рассмотрен ниже, нам необходимо
знать о существовании
шестнадцатеричных чисел.
Итак, подведем
итог. Шестнадцатеричная система
счисления состоит из 10 цифр (от 0 до
9) и 6 букв латинского алфавита (A, B, C,
D, E, F). Если к какому-нибудь числу в
шестнадцатеричной системе добавим
справа нуль, то это число
увеличится в
16
раз. Очень важно
уяснить данную тему
, так как мы
будем постоянно использовать ее
при написании программ.
Теперь немного о
том, как я буду строить примеры на
Ассемблере. Не совсем удобно
приводить их в HTML-формате, поэтому
сперва будет сам код программы с
пронумерованными строчками, а
сразу же после него объяснения и
примечания.
Примерно так:
строк | Код программы |
(1) | mov ah,9 |
Объяснения:
В строке (1) мы
делаем то-то, а в строке (15) то-то.
Огромная
просьба:
НЕ копируйте
программы со страницы в буфер, а
затем не вставляйте их в Блокнот
(или еще куда-нибудь)!
Перепечатывайте их вручную в
текстовом редакторе. Если есть
принтер, то выделите программу,
распечатайте выделенный фрагмент,
а затем перебейте в редактор с
бумаги. Все примеры нужно
набирать самостоятельно!
Это
ускорит запоминание операторов.
И еще. Строчные и
ПРОПИСНЫЕ буквы в Ассемблере не
различаются. Записи вида:
Ассемблером
воспринимаются одинаково. Можно,
конечно, заставить Ассемблер
различать строчные и ПРОПИСНЫЕ
символы, но мы пока этого делать не
будем. Для удобства чтения
программы лучше всего операторы
печатать строчными буквами, а
названия подпрограмм и меток
начинать с прописной. Но это как
кому будет удобно.
Итак,
переходим к нашей первой программе:
(1) CSEG segment
(2) org 100h
(4) Begin:
(6) mov ah,9
(7) mov dx,offset Message
(8) int 21h
(10) int 20h
(11)
(12) Message db «Hello,
world!$»
(13) CSEG ends
(14) end Begin
Для того, чтобы
объяснить все операторы данного
примера, нам потребуется несколько
выпусков. Поэтому описание
некоторых команд мы просто опустим
на данном этапе. Просто считайте,
что так должно быть. В самое
ближайшее время мы рассмотрим эти
операторы подробно. Итак, строки с
номерами (1), (2) и (13) вы просто
игнорируете.
Строки (3), (5), (9) и
(11) остаются пустыми. Это делается
для наглядности. Ассемблер их будет
просто опускать.
Теперь перейдем к
рассмотрению остальных операторов.
Со строки (4) начинается код
программы. Это метка, указывающая
Ассемблеру на начало кода. В строке
(14) стоят операторы end Begin (Begin англ. начало;
end конец). Это конец
программы. Вообще вместо слова
Begin
можно было бы
использовать что-нибудь другое.
Например,
Start:. В
таком случае, нам пришлось бы и
завершать программу
End Start (14).
Строки (6) (8)
выводят на экран сообщение Hello, world!.
Здесь придется вкратце рассказать
о регистрах процессора (более
подробно эту тему мы рассмотрим в
следующем выпуске).
Регистр
процессора это специально
отведенная память для хранения
какого-нибудь числа.
Например:
Если мы хотим
сложить два числа, то в математике
запишем так:
A, B и
C это своего рода
регистры (если говорить о
компьютере), в которых могут
хранится некоторые данные. А=5 можно
прочитать как: Присваиваем А
число 5
.
Для присвоения
регистру какого-нибудь значения, в
Ассемблере существует оператор mov
(от англ. move загрузить). Строку (6)
следует читать так: Загружаем в
регистр
AH
число
9 (проще говоря, присваиваем
AH
число 9).
Ниже рассмотрим зачем это надо.
В строке (7)
загружаем в регистр
DX адрес сообщения для
вывода (в данном примере это будет
строка
Hello, world!$
).
Прерывания
будут подробно рассматриваться в
последующих выпусках. Здесь я скажу
несколько слов.
Прерывание
MS-DOS
это своего рода
подпрограмма (часть
MS-DOS)
, которая находится
постоянно в памяти и может
вызываться в любое время из любой
программы.
Рассмотрим
вышесказанное на примере (мелким шрифтом
выделим примечания
):
Программа
сложения двух чисел
НачалоПрограммы
A=5
в переменную A заносим
значение 5
B=8
в переменную B значение
8
ВызовПодпрограммы
Сложение
теперь С
равно 13
A=10
тоже самое, только
другие числа
B=25
ВызовПодпрограммы
Сложение
теперь С
равно 35
КонецПрограммы
Подпрограмма
Сложение
C=A+B
ВозвратИзПодпрограммы
возвращаемся
в то место, откуда вызывали
КонецПодпрограммы
В данном примере
мы дважды вызвали подпрограмму Сложение
,
которая сложила два числа,
переданные ей в переменных
A и
B.
Результат помещается в переменную
С. Когда вызывается подпрограмма,
компьютер запоминает с какого
места она была вызвана, а затем,
когда закончила работу
подпрограмма, компьютер
возвращается в то место, откуда она
вызывалась. Т.о. можно вызывать
подпрограммы неопределенное
количество раз с любого места.
При выполнении
строки (8) программы на Ассемблере
мы вызываем подпрограмму (в данном
случае это называется прерывание),
которая выводит на экран строку.
Для этого мы, собственно, и помещаем
необходимые значения в регистры.
Всю необходимую работу (вывод
строки, перемещение курсора) берет
на себя подпрограмма. Эту строку
можно прочитать так: вызываем
двадцать первое прерывание (int от англ.
interrupt прерывание). Обратите
внимание, что после числа 21 стоит
буква
h. Это, как
мы уже знаем, шестнадцатеричное
число (33 в десятичной системе).
Конечно, нам ничего не мешает
заменить строку
int 21h на
int 33. Программа будет
работать корректно. Просто в
Ассемблере принято указывать номер
прерывания в шестнадцатеричной
системе.
В строке (10) мы, как
вы уже догадались, вызываем
прерывание 20
h.
Для вызова данного прерывания не
нужно указывать какие-либо
значения в регистрах. Оно выполняет
только одну задачу: выход из
программы (выход в DOS). В результате
выполнения прерывания 20h, программа
вернется туда, откуда ее запускали
(загружали, вызывали). Например, в
Norton
Commander или
DOS
Navigator.
Строка (12)
содержит сообщение для вывода.
Первое слово (message сообщение) название
сообщения. Оно может быть любым
(например,
mess или
string и пр.).
Обратите внимание на
строку (7), в которой мы загружаем в
регистр
DX адрес
нашего сообщения.
Можно создать еще
одну строку, которую назовем
Mess2. Затем, начиная со
строки (9) вставим следующие
команды:
(10) mov dx,offset Mess2
(13) Message db «Hello, world!$»
(14) Mess2 db «Это Я!
$»
и ассемблировать
нашу программу заново.
Надеюсь, что вы
догадались, что произойдет
Обратите внимание
на последний символ в строках
Message
и
Mess2 — $. Он указывает на конец
строки. Если мы его уберем, то 21
h прерывание продолжит
вывод до тех пор, пока не встретится
где-нибудь в памяти символ
$. На экране мы увидим
мусор
.
Если у вас есть отладчик, то можно
посмотреть как будет работать наша
программа.
Целю настоящего выпуска не было
разобраться подробно с каждым
оператором
. Это невозможно, т.к. у
вас еще недостаточно знаний. Я
полагаю, что уже через 3-4 выпуска вы
поймете принцип и структуру
программы на Ассемблере. Может
быть, вам показался язык Ассемблера
чрезвычайно сложным, но это,
поверьте, с первого взгляда.
Преобразование чисел в различные системы счисления
Система чисел является систематическим способом представления чисел символьными символами и использует базовое значение для удобной группировки чисел в сжатой форме. Самая распространенная система числов — десятичная, которая имеет базовое значение 10, и набор символов 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Однако существуют и другие числовые системы, которые могут быть более эффективными для определенной цели. Например, так как на компьютерах используется логическое значение для вычислений и операций, для выполнения вычислений и операций используется двоичная числовая система, которая имеет базовое значение 2.
Microsoft Office Excel есть несколько функций, которые можно использовать для преобразования чисел в числовые системы и из них:
|
|
|
Двоичный
|
2
|
0,1
|
Восьмеричном
|
8
|
0, 1, 2, 3, 4, 5, 6, 7
|
Действительное.
|
10
|
0, 1, 2, 3, 4, 5, 6, 7, 8 и 9
|
Шестнадцатеричный
|
16
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
|
Преобразование двоичного числа в десятичное
Для этого используйте функцию ДВ.В.Е.
|
Преобразование двоичного числа в hexadecimal
Для этого используйте функцию ДВ.В.EX.
|
Преобразование двоичного числа в восьмую
Для этого используйте функцию ДВ.В.ВЕХ.
|
Преобразует десятичное число в двоичное.
Для этого используйте функцию DEC2BIN.
|
Преобразование десятичных числовом восьмерикое
Для этого используйте функцию DEC2HEX.
|
Преобразование десятичных числовых в восьмеричных
Для этого используйте функцию DEC2OCT.
|
Преобразование hexadecimal number в двоичное
Для этого используйте функцию HEX2BIN.
|
Преобразование hexadecimal number в десятичной
Для этого используйте функцию HEX2DEC.
|
Преобразование hexadecimal number в восьмую
Для этого используйте функцию HEX2OCT.
|
Преобразование восьмого числа в двоичное
Для этого используйте функцию ВОСЬМ.В.ДВ.
|
Преобразование восьмериального числа в десятичной
Для этого используйте функцию ВОСЬМ.В.Е.
|
Преобразование восьмого числа в hexadecimal
Для этого используйте функцию ВОСЬМ.В.EX.
|
Таблица 16 ричной системы. Алфавит шестнадцатеричной системы счисления. §13. Шестнадцатеричная система счисления с традиционным алфавитом
Для написания
программ на Ассемблере, необходимо
разобраться с шестнадцатеричной
системой счисления. Ничего
сложного в ней нет. Мы используем в
жизни десятичную систему. Уверен,
что вы все ее знаете, поэтому я
постараюсь объяснить
шестнадцатеричную систему, проводя
аналогию с десятичной.
Итак, в десятичной
системе если мы к какому-нибудь
числу справа добавим нуль, то это
число увеличится в 10 раз. Например: 1
х 10 = 10; 10 х 10 = 100; 100 х 10 = 1000 и т.д. В
этой системе мы используем цифры от
0 до 9, т.е. десять разных цифр
(собственно, поэтому она и
называется десятичная).
У нас может быть базовая система с двумя номерами, или это двоичная система чисел, где вместо 10 цифр у вас есть только две цифры. Каждое место, вместо того, чтобы быть силой десяти, будет состоять из двух. Теперь вы можете себе представить, что мы можем продолжать расширять это. Мы можем распространяться на три, четыре, пять, шесть, семь, восемь, девять, или мы могли бы даже пойти выше. Как вы можете себе представить, вместо того, чтобы иметь только 10 цифр, он будет иметь Что это за цифры? Как мы увидим, вместо того, чтобы место было степенью двух или степеней десяти, будут полномочия, которые мы можем видеть, мы можем повторно использовать существующие 10 цифр из десятичной системы счисления.
В
шестнадцатеричной системе мы
используем, соответственно,
шестнадцать «цифр». Я специально
написал слово «цифр» в кавычках,
т.к. в ней используются не только
цифры. Да и в самом деле как так?
Объясняю: от 0 до 9 мы считаем так же,
как и в десятичной, а вот дальше
будет так: A, B, C, D, E, F. Число F, как не
трудно
посчитать,
будет равно 15 в десятичной системе
(см. табл. 1).
Мы можем повторно использовать ноль, один, два, три, четыре, пять, шесть, семь, восемь, девять, но тогда нам понадобится еще шесть цифр. Соглашение состоит в том, чтобы использовать первые шесть букв. а не цифры, но помните, что это просто произвольные черви на листе бумаги. Это просто произвольные символы, которые мы выросли, чтобы общаться с вещами. Вы выросли, чтобы связать этот символ прямо здесь с восемью вещью, со словом восемь, с которым вы связываетесь, когда видите много объектов. Это буквально означает, что если у тебя есть 10 вещей, то ты бы сказал: «У меня есть вещи там».
Десятичное | Шестнадцатеричное |
Таблица 1. Десятичная и шестнадцатеричная системы.
Т.о., если мы к
какому-нибудь числу в
шестнадцатеричной системе добавим
справа нуль, то это число
увеличится в
16
раз.
Вместо того, чтобы сказать: «Мне 15», можно сказать: «У меня там есть вещи». Теперь, как это помогает? Ну, давайте посмотрим, можем ли мы представить одно и то же число 231 или 231 в десятичном значении. Что такое семь? Каковы значения этих мест? Это первое место представляет 16 для нулевой мощности или по-прежнему представляет собой место. Итак, что здесь представляет это место? Ну, в базе 10, это было 10 до первой мощности. В двух базовых, это было две для первой власти. Это буквально, хорошо, позвольте мне написать слово, это буквально шестьдесят.
Это то, что представляет это число. Ну, это то же самое, что и в 14 раз 14 раз 16. Это будет здесь 14 шестнадцати, 14 раз 16 — 224 плюс семь. Ну, 224 плюс 7 будет давать вам надежду, вы можете это оценить. Вы можете представлять одно и то же количество в любой из этих различных систем счисления. В любом количестве, которое вы можете представить в десятичной форме, вы также можете представить это число в двоичном формате, или в шестнадцатеричном, или в базовом трех, или в базе 60, или в базе 31, что бы вы ни делали.
Пример 1:
1 х
16 = 10; 10 х 16 = 100; 100 х 16 = 1000 и т.д.
Вы смогли
отличить в Примере 1
шестнадцатеричные числа от
десятичных? А из этого ряда: 10, 12, 45,
64, 12, 8, 19? Это могут быть как
шестнадцатеричные, так и
десятичные. Для того, чтобы не было
путаницы, и компьютер смог бы
однозначно отличить одни числа от
других, в Ассемблере принято после
шестнадцатеричного числа ставить
символ h или H (H это
сокращение от англ.
hexadecimal
(шестнадцатеричное).
Для краткости его иногда называют
просто
Hex
)
. А после десятичного
ничего не ставить. Т.к. числа от 0 до 9
в обоих системах имеют одинаковые
значения, то числа, записанные как 5
и 5h одно и тоже.
Возможно, вы заметили шаблон. Чем больше символов у нас, так и в базе 16, у вас есть 16 символов, тем меньше значений места нам нужно представлять одинаковое количество. Один из способов подумать об этом — каждое из мест содержит больше информации. Хотя это здесь только один из двух символов. Это один из десяти персонажей. Чем больше символов у вас есть, тем больше цифр, которые вы могли бы разместить в каждом месте, тем меньше мест вам нужно представлять определенное количество. Это просто интересная вещь, которую нужно наблюдать.
Но, надеюсь, вы выйдете из игры, как и в случае с базой 16, как и я, и это действительно полезно. Это фактически используется, если вы смотрите на большинство веб-страниц. Если вы действительно хотите сделать что-нибудь забавное, позвольте мне дать вам еще один. Опять же, это не очень специализированный. Система чисел, которую мы используем в повседневной жизни, называется десятичной или системой и использует 10 символов от 0 до 9 для представления значения.
Т.о. Пример 1 (см.
выше) правильнее будет записать
так: 1 х 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h.
Либо так: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h =
1000h.
Для чего нужна
шестнадцатеричная система, мы
рассмотрим в последующих выпусках.
А в данный момент для нашего
примера программы, который будет
рассмотрен ниже, нам необходимо
знать о существовании
шестнадцатеричных чисел.
Где и почему используется шестнадцатеричный?
Большинство кодов ошибок и других значений, используемых внутри компьютера, представлены в шестнадцатеричном формате. Да, двоичный код намного проще в некоторых отношениях, но нам также намного проще читать шестнадцатеричные значения, чем двоичные. Подсчет в шестнадцатеричном формате легко, если вы помните, что есть 16 символов, которые составляют каждый набор чисел.
Как вручную преобразовать шестнадцатеричные значения
В десятичном формате мы все знаем, что мы считаем так. Однако в шестнадцатеричном формате мы учитываем все 16 чисел. Вот несколько примеров некоторых сложных шестнадцатеричных «переходов», которые могут оказаться полезными. Добавление шестнадцатеричных значений очень просто и фактически выполняется очень похоже на подсчет чисел в десятичной системе.
Итак, подведем
итог. Шестнадцатеричная система
счисления состоит из 10 цифр (от 0 до
9) и 6 букв латинского алфавита (A, B, C,
D, E, F). Если к какому-нибудь числу в
шестнадцатеричной системе добавим
справа нуль, то это число
увеличится в
16
раз. Очень важно
уяснить данную тему
, так как мы
будем постоянно использовать ее
при написании программ.
Большинство из нас может это сделать в наших головах — вот здесь один из способов взглянуть на это, что полезно. Когда вводятся три цифры, например 123, мы знаем, что мы должны смотреть на все три места, чтобы понять, что они на самом деле означают. Уберите первые два, а 3 все еще. 2 умножается на 10, потому что это вторая цифра в номере, как и в первом примере. Опять же, заберите 1 из этого 123, и вы останетесь с 23, что равно 20. Третье число справа взято раз 10, дважды.
Вот еще два способа взглянуть на это. То же самое верно, если число в тысячах, например 1. Сначала вы должны преобразовать шестнадцатеричные цифры в десятичные, а затем просто добавить числа вместе, как и с двумя приведенными выше примерами. Следующее число слева от него должно быть умножено на 16, что, как и второе число из 123 выше, необходимо чтобы умножить на 10, чтобы сделать число.
Теперь немного о
том, как я буду строить примеры на
Ассемблере. Не совсем удобно
приводить их в HTML-формате, поэтому
сперва будет сам код программы с
пронумерованными строчками, а
сразу же после него объяснения и
примечания.
Примерно так:
строк | Код программы |
(1) | mov ah,9 |
Объяснения:
Наконец, третье число справа нужно умножить на 16, дважды, как десятичное число, нужно умножить на 10, дважды, когда у него три цифры. Хотя хорошо знать, как это сделать вручную, конечно, гораздо проще работать с шестнадцатеричными значениями с калькулятором или конвертером.
Есть много онлайн-шестнадцатеричных конвертеров, которые действительно просты в использовании и являются лишь немногими из них. Одним из примеров будет добавление шестнадцатеричного и двоичного значений вместе, а затем просмотр результата в десятичном формате. Поскольку десятичное число относится к числу 10, а у нас есть десять пальцев и десять пальцев, мы склонны любить использовать числа в группах десятков, встроенных в нашу систему нумерации.
В строке (1) мы
делаем то-то, а в строке (15) то-то.
Огромная
просьба:
НЕ копируйте
программы со страницы в буфер, а
затем не вставляйте их в Блокнот
(или еще куда-нибудь)!
Перепечатывайте их вручную в
текстовом редакторе. Если есть
принтер, то выделите программу,
распечатайте выделенный фрагмент,
а затем перебейте в редактор с
бумаги. Все примеры нужно
набирать самостоятельно!
Это
ускорит запоминание операторов.
Мы можем разбить каждое из этих чисел на кратные степени 10. Если вы предпочитаете экспонентов, также известных как полномочия, вы здесь. Вам даже не нужно беспокоиться о фракциях. Шестнадцатеричный К сожалению, компьютеры не имеют 10 пальцев и 10 пальцев. На самом деле у них вообще нет! Люди, которые делают эти машины, решили, что это слишком сложно сделать компьютер, который может считаться точно так же, как человек. Итак, вместо этого компьютеры используют двоичный код, который мы можем записать в сокращенной форме — шестнадцатеричной.
Шестнадцатеричный, часто называемый шестнадцатеричным, является методом группировки чисел в степени 16 вместо полномочий. Мы можем назвать шестнадцатеричную базу. Самая большая цифра в десятичной форме. Например, чтобы представить девятнадцать, мне нужно поставить номер один и номер девять рядом друг с другом: Итак, десятичные числа используют цифры от 0 до 9, всего десять разных цифр. Но для шестнадцатеричных чисел требуется более десяти цифр. Они должны соответствовать 16 типам чисел в одну цифру.
И еще. Строчные и
ПРОПИСНЫЕ буквы в Ассемблере не
различаются. Записи вида:
Ассемблером
воспринимаются одинаково. Можно,
конечно, заставить Ассемблер
различать строчные и ПРОПИСНЫЕ
символы, но мы пока этого делать не
будем. Для удобства чтения
программы лучше всего операторы
печатать строчными буквами, а
названия подпрограмм и меток
начинать с прописной. Но это как
кому будет удобно.
Чтобы решить эту проблему, шестнадцатеричные числа имеют несколько алфавитных букв, используемых в качестве числовых цифр. Шестнадцатеричные числа. Шестнадцатеричные обозначения В других руководствах, текстовых файлах и программах вы обычно найдете несколько типов обозначений, которые отличают шестнадцатеричные числа от десятичных чисел.
Чтобы убедиться, что кто-то еще знает, что вы говорите о шестнадцатеричных числах, а не о десятичных числах, вы можете использовать вышеупомянутые три обозначения. Это обозначение является одной из наиболее распространенных форм. Все числа считаются шестнадцатеричными числами, если не указано иное.
Итак,
переходим к нашей первой программе:
(1) CSEG segment
(2) org 100h
(4) Begin:
(6) mov ah,9
(7) mov dx,offset Message
(8) int 21h
(10) int 20h
(11)
(12) Message db «Hello,
world!$»
(13) CSEG ends
(14) end Begin
Для того, чтобы
объяснить все операторы данного
примера, нам потребуется несколько
выпусков. Поэтому описание
некоторых команд мы просто опустим
на данном этапе. Просто считайте,
что так должно быть. В самое
ближайшее время мы рассмотрим эти
операторы подробно. Итак, строки с
номерами (1), (2) и (13) вы просто
игнорируете.
В предыдущей статье мы рассмотрели двойную и десятичную системы. Сегодня мы имеем дело с третьей приоритетной системой. Тот или иной лингвист наверняка уже знает: основой для этой платежной системы является 16. И если мы уже немного работаем с двойной и десятичной системой, обучение третьей системе не должно быть слишком сложным.
Если бы мы имели только две цифры, 0 и 1 в двойной системе, шестнадцатеричная система имеет 16 цифр. Но в тот момент мы будем брать цифры только как цифры, как цифра «12» отличается от двух цифр 1 и 2? Устраните здесь, создайте буквы. Таким образом, каждая цифра действительно четко идентифицируется и уникальна. В противном случае платежная система ведет себя так, как известно. Только орфография — это нечто особенное.
Строки (3), (5), (9) и
(11) остаются пустыми. Это делается
для наглядности. Ассемблер их будет
просто опускать.
Теперь перейдем к
рассмотрению остальных операторов.
Со строки (4) начинается код
программы. Это метка, указывающая
Ассемблеру на начало кода. В строке
(14) стоят операторы end Begin ( Begin англ. начало;
end конец). Это конец
программы. Вообще вместо слова
Begin
можно было бы
использовать что-нибудь другое.
Например,
Start:. В
таком случае, нам пришлось бы и
завершать программу
End Start (14).
Бинарные и десятичные числа можно отличить относительно легко. Если присутствуют только 0 и 1, число в соответствующем контексте достаточно надежно записано двоичным. В шестнадцатеричном и десятичном значениях опасность больше запутать, потому что не только 2, но и 10 цифр идентичны. Достаточно теории, мы снова начинаем с примера.
Преобразование десятичных чисел в шестнадцатеричные числа также выполняется быстро. Теперь мы объединяем три системы, и мы рассматриваем, как эти системы используются в компьютерах. Начнем с наименьшей единицы: бит. Один бит — это наименьший объем данных, который может обрабатывать компьютер. Это цифра, то есть 0 или От нескольких бит, теперь все остальные структуры.
Строки (6) (8)
выводят на экран сообщение Hello, world!.
Здесь придется вкратце рассказать
о регистрах процессора (более
подробно эту тему мы рассмотрим в
следующем выпуске).
Регистр
процессора это специально
отведенная память для хранения
какого-нибудь числа.
Например:
Если мы хотим
сложить два числа, то в математике
запишем так:
Байт может использоваться для отображения чисел от -255 до 255. Чтобы вы могли различать положительный и отрицательный, в качестве цифр можно использовать только 7 бит. Однако в некоторых случаях это правило можно пренебречь в пользу экспоненциально растущего диапазона значений.
Введение в шестнадцатеричную систему
Шестнадцатеричные числа: преобразование, орфография. И, наконец, как всегда, результаты. Они должны быть представлены здесь шаг за шагом. Эти шестнадцатеричные значения всегда начинаются с алмаза #. За ним следуют 3 пары из 2 шестнадцатеричных символов. 3 пары представляют значения цвета в порядке красно-зелено-синего, первый для красного, последний для синего. Как следует из названия, шестнадцатеричная система представляет собой числовую систему на основе 16. Таким образом, 16 символов доступны для каждого символа.
A, B и
C это своего рода
регистры (если говорить о
компьютере), в которых могут
хранится некоторые данные. А=5 можно
прочитать как: Присваиваем А
число 5
.
Для присвоения
регистру какого-нибудь значения, в
Ассемблере существует оператор mov
(от англ. move загрузить). Строку (6)
следует читать так: Загружаем в
регистр
AH
число
9 (проще говоря, присваиваем
AH
число 9).
Ниже рассмотрим зачем это надо.
Для каждого отдельного значения цвета есть 2 цифры, шестнадцать — это то же самое, что и для нормальной десятичной системы: если максимум достигнут в одной точке, точка до точки увеличивается на 1. Когда цвет указывается как шестнадцатеричное значение, чем больше значение, тем ярче становится цвет.
Пример применения Цвета как шестнадцатеричное значение. В этом случае десятичные значения могут быть указаны от 0 до 255, разделенные запятой. Порядок идентичен порядку шестнадцатеричной нотации, и также верно следующее: чем больше значение, тем ярче цвет, 255 является максимальным. В качестве альтернативы возможны и процентные данные, но это очень редко.
В строке (7)
загружаем в регистр
DX адрес сообщения для
вывода (в данном примере это будет
строка
Hello, world!$
).
Прерывания
будут подробно рассматриваться в
последующих выпусках. Здесь я скажу
несколько слов.
Прерывание
MS-DOS
это своего рода
подпрограмма (часть
MS-DOS)
, которая находится
постоянно в памяти и может
вызываться в любое время из любой
программы.
Рассмотрим
вышесказанное на примере (мелким шрифтом
выделим примечания
):
Программа
сложения двух чисел
НачалоПрограммы
A=5
в переменную A заносим
значение 5
B=8
в переменную B значение
8
ВызовПодпрограммы
Сложение
теперь С
равно 13
A=10
тоже самое, только
другие числа
B=25
ВызовПодпрограммы
Сложение
теперь С
равно 35
КонецПрограммы
Подпрограмма
Сложение
C=A+B
ВозвратИзПодпрограммы
возвращаемся
в то место, откуда вызывали
КонецПодпрограммы
В данном примере
мы дважды вызвали подпрограмму Сложение
,
которая сложила два числа,
переданные ей в переменных
A и
B.
Результат помещается в переменную
С. Когда вызывается подпрограмма,
компьютер запоминает с какого
места она была вызвана, а затем,
когда закончила работу
подпрограмма, компьютер
возвращается в то место, откуда она
вызывалась. Т.о. можно вызывать
подпрограммы неопределенное
количество раз с любого места.
При выполнении
строки (8) программы на Ассемблере
мы вызываем подпрограмму (в данном
случае это называется прерывание),
которая выводит на экран строку.
Для этого мы, собственно, и помещаем
необходимые значения в регистры.
Всю необходимую работу (вывод
строки, перемещение курсора) берет
на себя подпрограмма. Эту строку
можно прочитать так: вызываем
двадцать первое прерывание ( int от англ.
interrupt прерывание). Обратите
внимание, что после числа 21 стоит
буква
h. Это, как
мы уже знаем, шестнадцатеричное
число (33 в десятичной системе).
Конечно, нам ничего не мешает
заменить строку
int 21h на
int 33. Программа будет
работать корректно. Просто в
Ассемблере принято указывать номер
прерывания в шестнадцатеричной
системе.
В строке (10) мы, как
вы уже догадались, вызываем
прерывание 20
h.
Для вызова данного прерывания не
нужно указывать какие-либо
значения в регистрах. Оно выполняет
только одну задачу: выход из
программы (выход в DOS). В результате
выполнения прерывания 20h, программа
вернется туда, откуда ее запускали
(загружали, вызывали). Например, в
Norton
Commander или
DOS
Navigator.
Строка (12)
содержит сообщение для вывода.
Первое слово ( message сообщение) название
сообщения. Оно может быть любым
(например,
mess или
string и пр.).
Обратите внимание на
строку (7), в которой мы загружаем в
регистр
DX адрес
нашего сообщения.
Можно создать еще
одну строку, которую назовем
Mess2. Затем, начиная со
строки (9) вставим следующие
команды:
(10) mov dx,offset Mess2
(13) Message db «Hello, world!$»
(14) Mess2 db «Это Я!
$»
и ассемблировать
нашу программу заново.
Надеюсь, что вы
догадались, что произойдет
Обратите внимание
на последний символ в строках
Message
и
Mess2 — $. Он указывает на конец
строки. Если мы его уберем, то 21
h прерывание продолжит
вывод до тех пор, пока не встретится
где-нибудь в памяти символ
$. На экране мы увидим
мусор
.
Если у вас есть отладчик, то можно
посмотреть как будет работать наша
программа.
Целю настоящего выпуска не было
разобраться подробно с каждым
оператором
. Это невозможно, т.к. у
вас еще недостаточно знаний. Я
полагаю, что уже через 3-4 выпуска вы
поймете принцип и структуру
программы на Ассемблере. Может
быть, вам показался язык Ассемблера
чрезвычайно сложным, но это,
поверьте, с первого взгляда.
Рис. 13.1.
Шестнадцатеричная система счисления является для нас первой, чей алфавит включает цифры, не всегда совпадающие по написанию с десятичными — просто цифр в нём больше на шесть. Однако алфавит этой системы в общем случае уместно считать традиционным (см. §2), что означает наличие в нём цифр, изображённых на рис. 13.1. С появлением «новых» цифр (по отношению к привычной десятичной системе) применительно к ним используются названия, доселе недопустимые. Например, мы не могли сказать раньше «цифра десять», или «цифра четырнадцать» (напомним, что всё-таки цифра — это один знак, — см. §23 «Введения в информатику»). Теперь это не только вполне приемлемо, но по-другому эти «новые» цифры можно называть разве что так, как это принято в языках, использующих латинский алфавит.
Итак, цифра A — это цифра «десять», B — «одиннадцать», C — «двенадцать», D — «тринадцать», E — «четырнадцать» и, наконец, F — это «пятнадцать».
Рис. 13.2.
Классическая шестнадцатеричная система является позиционной. Другими словами, по отношению к числам, построенным по её правилам, имеет смысл говорить об их разрядах. Разряды шестнадцатеричных чисел называются так: разряд единиц, разряд шестнадцати, двухсот пятидесяти шести и т. д. Как мы видим, они строятся по названию числа, образованного возведением в очередную степень основания (базы) системы счисления — числа 16. Названия некоторых разрядов целой и дробной частей шестнадцатеричного числа видны из рис. 13.2.
Иногда шестнадцатеричное число не содержит десятичный индекс, обозначающий базу. Вместо него может быть указана латинская буква «H», ставящаяся в конце числа и показывающая, что число записано в шестнадцатеричной форме. Такое обозначение часто используют в профессиональной литературе по информатике. Следует иметь в виду, что H — это замена индекса и никак не цифра!
Что, впрочем, кажется вполне естественным, если взглянуть на алфавит системы счисления.
Буква «H» есть сокращение английского слова hexadimal
, что означает шестнадцатеричное (число)
. Другим часто используемым сокращением этого слова является «hex», означающее то же самое (например, оно используется в стандартном приложении операционной системы Windows «Калькулятор», об этом можно прочитать в §1 «Стандартные приложения операционной системы Windows» / «Программа «Калькулятор»).
Шестнадцатеричная система счисления одной цифрой описывает содержимое полубайта. Любое же двузначное шестнадцатеричное число удобно представляет содержимое одного байта. По этой причине изучаемая система счисления широко используется в информатике и инженерных дисциплинах, при участии которых разрабатывается цифровая техника.
Будучи тесно связанной с двоичной системой счисления (как, впрочем, и восьмеричная система), она позволяет одним знаком описать текущее значение свойства объекта, если количество возможных значений этого свойства 16, или текущие значения логических свойств объекта, если количество этих свойств 4 и они комбинируются друг с другом.
Системы счисления. Перевод из одной системы в другую.
1. Порядковый счет в различных системах счисления.
В современной жизни мы используем позиционные системы счисления, то есть системы, в которых число, обозначаемое цифрой, зависит от положения цифры в записи числа. Поэтому в дальнейшем мы будем говорить только о них, опуская термин «позиционные».
Для того чтобы научиться переводить числа из одной системы в другую, поймем, как происходит последовательная запись чисел на примере десятичной системы.
Поскольку у нас десятичная система счисления, мы имеем 10 символов (цифр) для построения чисел. Начинаем порядковый счет: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Цифры закончились. Мы увеличиваем разрядность числа и обнуляем младший разряд: 10. Затем опять увеличиваем младший разряд, пока не закончатся все цифры: 11, 12, 13, 14, 15, 16, 17, 18, 19. Увеличиваем старший разряд на 1 и обнуляем младший: 20. Когда мы используем все цифры для обоих разрядов (получим число 99), опять увеличиваем разрядность числа и обнуляем имеющиеся разряды: 100. И так далее.
Попробуем сделать то же самое в 2-ной, 3-ной и 5-ной системах (введем обозначение для 2-ной системы, для 3-ной и т.д.):
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 10 | 3 |
4 | 100 | 11 | 4 |
5 | 101 | 12 | 10 |
6 | 110 | 20 | 11 |
7 | 111 | 21 | 12 |
8 | 1000 | 22 | 13 |
9 | 1001 | 100 | 14 |
10 | 1010 | 101 | 20 |
11 | 1011 | 102 | 21 |
12 | 1100 | 110 | 22 |
13 | 1101 | 111 | 23 |
14 | 1110 | 112 | 24 |
15 | 1111 | 120 | 30 |
Если система счисления имеет основание больше 10, то нам придется вводить дополнительные символы, принято вводить буквы латинского алфавита. Например, для 12-ричной системы кроме десяти цифр нам понадобятся две буквы ( и ):
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | |
11 | |
12 | 10 |
13 | 11 |
14 | 12 |
15 | 13 |
2.Перевод из десятичной системы счисления в любую другую.
Чтобы перевести целое положительное десятичное число в систему счисления с другим основанием, нужно это число разделить на основание. Полученное частное снова разделить на основание, и дальше до тех пор, пока частное не окажется меньше основания. В результате записать в одну строку последнее частное и все остатки, начиная с последнего.
Пример 1. Переведем десятичное число 46 в двоичную систему счисления.
Пример 2. Переведем десятичное число 672 в восьмеричную систему счисления.
Пример 3. Переведем десятичное число 934 в шестнадцатеричную систему счисления.
3. Перевод из любой системы счисления в десятичную.
Для того, чтобы научиться переводить числа из любой другой системы в десятичную, проанализируем привычную нам запись десятичного числа.
Например, десятичное число 325 – это 5 единиц, 2 десятка и 3 сотни, т.е.
Точно так же обстоит дело и в других системах счисления, только умножать будем не на 10, 100 и пр., а на степени основания системы счисления. Для примера возьмем число 1201 в троичной системе счисления. Пронумеруем разряды справа налево начиная с нуля и представим наше число как сумму произведений цифры на тройку в степени разряда числа:
Это и есть десятичная запись нашего числа, т.е.
Пример 4. Переведем в десятичную систему счисления восьмеричное число 511.
Пример 5. Переведем в десятичную систему счисления шестнадцатеричное число 1151.
4. Перевод из двоичной системы в систему с основанием «степень двойки» (4, 8, 16 и т.д.).
Для преобразования двоичного числа в число с основанием «степень двойки» необходимо двоичную последовательность разбить на группы по количеству цифр равному степени справа налево и каждую группу заменить соответствующей цифрой новой системы счисления.
Например, Переведем двоичное 1100001111010110 число в восьмеричную систему. Для этого разобьем его на группы по 3 символа начиная справа (т.к. ), а затем воспользуемся таблицей соответствия и заменим каждую группу на новую цифру:
Таблицу соответствия мы научились строить в п.1.
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
Т.е.
Пример 6. Переведем двоичное 1100001111010110 число в шестнадцатеричную систему.
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
5.Перевод из системы с основанием «степень двойки» (4, 8, 16 и т.д.) в двоичную.
Этот перевод аналогичен предыдущему, выполненному в обратную сторону: каждую цифру мы заменяем группой цифр в двоичной системе из таблицы соответствия.
Пример 7. Переведем шестнадцатеричное число С3A6 в двоичную систему счисления.
Для этого каждую цифру числа заменим группой из 4 цифр (т.к. ) из таблицы соответствия, дополнив при необходимости группу нулями вначале:
Перевод чисел в различные системы счисления с решением | Онлайн калькулятор
Калькулятор позволяет переводить целые и дробные числа из одной системы счисления в другую. Основание системы счисления не может быть меньше 2 и больше 36 (10 цифр и 26 латинских букв всё-таки). Длина чисел не должна превышать 30 символов. Для ввода дробных чисел используйте символ .
или ,
. Чтобы перевести число из одной системы в другую, введите исходное число в первое поле, основание исходной системы счисления во второе и основание системы счисления, в которую нужно перевести число, в третье поле, после чего нажмите кнопку «Получить запись».
Исходное число
записано в
23456789101112131415161718192021222324252627282930313233343536-ой системе счисления.
Хочу получить запись числа в
23456789101112131415161718192021222324252627282930313233343536-ой системе счисления.
Получить запись
=
Выполнено переводов:
Также может быть интересно:
Системы счисления
Системы счисления делятся на два типа: позиционные и не позиционные. Мы пользуемся арабской системой, она является позиционной, а есть ещё римская − она как раз не позиционная. В позиционных системах положение цифры в числе однозначно определяет значение этого числа. Это легко понять, рассмотрев на примере какого-нибудь числа.
Пример 1. Возьмём число 5921 в десятичной системе счисления. Пронумеруем число справа налево начиная с нуля:
Число: | 5 | 9 | 2 | 1 |
Позиция: | 3 | 2 | 1 | 0 |
Число 5921 можно записать в следующем виде: 5921
= 5000+900+20+1
= 5·103+9·102+2·101+1·100
. Число 10 является характеристикой, определяющей систему счисления. В качестве степеней взяты значения позиции данного числа.
Пример 2. Рассмотрим вещественное десятичное число 1234.567. Пронумеруем его начиная с нулевой позиции числа от десятичной точки влево и вправо:
Число: | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Позиция: | 3 | 2 | 1 | 0 | -1 | -2 | -3 |
Число 1234.567 можно записать в следующем виде: 1234.567
= 1000+200+30+4+0.5+0.06+0.007
= 1·103+2·102+3·101+4·100+5·10-1+6·10-2+7·10-3
.
Перевод чисел из одной системы счисления в другую
Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:
1. Перевести число 1001101.11012
в десятичную систему счисления.
Решение: 1001101.11012
= 1·26+0·25+0·24+1·23+1·22+0·21+1·20+1·2-1+1·2-2+0·2-3+1·2-4
= 64+8++4+1+0.5+0.25+0.0625
= 77.812510
Ответ: 1001101.11012
= 77.812510
2. Перевести число E8F.2D16
в десятичную систему счисления.
Решение: E8F.2D16
= 14·162+8·161+15·160+2·16-1+13·16-2
= 3584+128+15+0.125+0.05078125
= 3727.1757812510
Ответ: E8F.2D16
= 3727.1757812510
Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.
Перевод целой части числа из десятичной системы счисления в другую систему счисления
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
3. Перевести число 27310
в восьмиричную систему счисления.
Решение: 273 / 8 = 34 и остаток 1, 34 / 8 = 4 и остаток 2, 4 меньше 8, поэтому вычисления завершены. Запись из остатков будет иметь следующий вид: 421
Проверка: 4·82+2·81+1·80
= 256+16+1
= 273
= 273
, результат совпал. Значит перевод выполнен правильно.
Ответ: 27310
= 4218
Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Перевод дробной части числа из десятичной системы счисления в другую систему счисления
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
4. Перевести число 0.12510
в двоичную систему счисления.
Решение: 0.125·2 = 0.25
(0 — целая часть, которая станет первой цифрой результата), 0.25·2 = 0.5
(0 — вторая цифра результата), 0.5·2 = 1.0
(1 — третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).
Ответ: 0.12510
= 0.0012
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16). Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Числовых символов, представляющих значения больше девяти, нет, поэтому используются буквы английского алфавита, в частности A, B, C, D, E и F.Шестнадцатеричный A = десятичный 10, а шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему (основание 10), где каждая цифра может иметь одно из десяти значений от нуля до десяти. Вероятно, это потому, что у людей на руках десять пальцев. Компьютеры обычно представляют числа в двоичном формате (с основанием 2). В двоичной системе каждая «двоичная цифра» называется битом и может иметь только одно из двух значений: единицу или ноль. Поскольку два возможных значения одного бита представляют одну пятую информации, потенциально передаваемой из десяти возможных значений десятичной цифры, для двоичного представления целочисленных значений может потребоваться гораздо больше (двоичных) битов, чем десятичных цифр.
Например, трехзначное десятичное значение 219 требует, чтобы восемь битов были представлены в двоичном виде (11011011). Людям неудобно читать, запоминать и печатать длинные последовательности битов. Шестнадцатеричный формат позволяет более удобно представлять группы из четырех битов одной «шестнадцатеричной» цифрой, поэтому для восьмибитового двоичного значения 11011011 требуется только две шестнадцатеричные цифры «DB».
Компьютерная память организована как массив строк битов, называемых байтами. На современных компьютерах каждый байт обычно содержит восемь битов, которые удобно представить в виде двух шестнадцатеричных цифр.Инженеры и компьютерщики часто называют каждое из этих четырехбитных значений полубайтом (иногда пишется как ниббл, см. Компьютерный жаргон).
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричном формате.
В отличие от современных компьютеров, многие ранние компьютеры имели шестибитные байты. Программисты этих систем обычно использовали альтернативную схему группировки битов, называемую восьмеричной.Каждая восьмеричная цифра эффективно представляет три бита, а шестибитовый байт может быть представлен как две восьмеричные цифры. Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате.Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это единица, разряда, следующая цифра слева — это десятка, , следующая — сотня, , и т. Д. В шестнадцатеричной системе каждая цифра может иметь 16 значений. , а не 10. Это означает, что у цифр — это место , у — шестнадцать — это место, а следующая — это 256 — это место. Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | Шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичное 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с младшей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг, пока не кончатся цифры.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16).Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Нет числовых символов, которые представляют значения больше девяти, поэтому используются буквы, взятые из английского алфавита, в частности A, B, C, D, E и F. Шестнадцатеричный A = десятичный 10 и шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему (основание 10), где каждая цифра может иметь одно из десяти значений от нуля до десяти.Вероятно, это потому, что у людей на руках десять пальцев. Компьютеры обычно представляют числа в двоичном формате (с основанием 2). В двоичной системе каждая «двоичная цифра» называется битом и может иметь только одно из двух значений: единицу или ноль. Поскольку два возможных значения одного бита представляют одну пятую информации, потенциально передаваемой из десяти возможных значений десятичной цифры, для двоичного представления целочисленных значений может потребоваться гораздо больше (двоичных) битов, чем десятичных цифр.
Например, трехзначное десятичное значение 219 требует, чтобы восемь битов были представлены в двоичном виде (11011011).Людям неудобно читать, запоминать и печатать длинные последовательности битов. Шестнадцатеричный формат позволяет более удобно представлять группы из четырех битов одной «шестнадцатеричной» цифрой, поэтому для восьмибитового двоичного значения 11011011 требуется только две шестнадцатеричные цифры «DB».
Компьютерная память организована как массив строк битов, называемых байтами. На современных компьютерах каждый байт обычно содержит восемь битов, которые удобно представить в виде двух шестнадцатеричных цифр. Инженеры и компьютерщики часто называют каждое из этих четырехбитных значений полубайтом (иногда пишется как ниббл, см. Компьютерный жаргон).
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричном формате.
В отличие от современных компьютеров, многие ранние компьютеры имели шестибитные байты. Программисты этих систем обычно использовали альтернативную схему группировки битов, называемую восьмеричной. Каждая восьмеричная цифра эффективно представляет три бита, а шестибитовый байт может быть представлен как две восьмеричные цифры.Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это единица, разряда, следующая цифра слева — это десятка, , следующая — сотня, , и т. Д.В шестнадцатеричном формате каждая цифра может быть 16 значений, а не 10. Это означает, что цифры имеют место — это , — шестнадцать — это место, а следующая — это , 256 — это место. Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | Шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичное 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с младшей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг, пока не кончатся цифры.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16).Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Нет числовых символов, которые представляют значения больше девяти, поэтому используются буквы, взятые из английского алфавита, в частности A, B, C, D, E и F. Шестнадцатеричный A = десятичный 10 и шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему (основание 10), где каждая цифра может иметь одно из десяти значений от нуля до десяти.Вероятно, это потому, что у людей на руках десять пальцев. Компьютеры обычно представляют числа в двоичном формате (с основанием 2). В двоичной системе каждая «двоичная цифра» называется битом и может иметь только одно из двух значений: единицу или ноль. Поскольку два возможных значения одного бита представляют одну пятую информации, потенциально передаваемой из десяти возможных значений десятичной цифры, для двоичного представления целочисленных значений может потребоваться гораздо больше (двоичных) битов, чем десятичных цифр.
Например, трехзначное десятичное значение 219 требует, чтобы восемь битов были представлены в двоичном виде (11011011).Людям неудобно читать, запоминать и печатать длинные последовательности битов. Шестнадцатеричный формат позволяет более удобно представлять группы из четырех битов одной «шестнадцатеричной» цифрой, поэтому для восьмибитового двоичного значения 11011011 требуется только две шестнадцатеричные цифры «DB».
Компьютерная память организована как массив строк битов, называемых байтами. На современных компьютерах каждый байт обычно содержит восемь битов, которые удобно представить в виде двух шестнадцатеричных цифр. Инженеры и компьютерщики часто называют каждое из этих четырехбитных значений полубайтом (иногда пишется как ниббл, см. Компьютерный жаргон).
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричном формате.
В отличие от современных компьютеров, многие ранние компьютеры имели шестибитные байты. Программисты этих систем обычно использовали альтернативную схему группировки битов, называемую восьмеричной. Каждая восьмеричная цифра эффективно представляет три бита, а шестибитовый байт может быть представлен как две восьмеричные цифры.Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это единица, разряда, следующая цифра слева — это десятка, , следующая — сотня, , и т. Д.В шестнадцатеричном формате каждая цифра может быть 16 значений, а не 10. Это означает, что цифры имеют место — это , — шестнадцать — это место, а следующая — это , 256 — это место. Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | Шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичное 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с младшей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг, пока не кончатся цифры.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16).Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Нет числовых символов, которые представляют значения больше девяти, поэтому используются буквы, взятые из английского алфавита, в частности A, B, C, D, E и F. Шестнадцатеричный A = десятичный 10 и шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему (основание 10), где каждая цифра может иметь одно из десяти значений от нуля до десяти.Вероятно, это потому, что у людей на руках десять пальцев. Компьютеры обычно представляют числа в двоичном формате (с основанием 2). В двоичной системе каждая «двоичная цифра» называется битом и может иметь только одно из двух значений: единицу или ноль. Поскольку два возможных значения одного бита представляют одну пятую информации, потенциально передаваемой из десяти возможных значений десятичной цифры, для двоичного представления целочисленных значений может потребоваться гораздо больше (двоичных) битов, чем десятичных цифр.
Например, трехзначное десятичное значение 219 требует, чтобы восемь битов были представлены в двоичном виде (11011011).Людям неудобно читать, запоминать и печатать длинные последовательности битов. Шестнадцатеричный формат позволяет более удобно представлять группы из четырех битов одной «шестнадцатеричной» цифрой, поэтому для восьмибитового двоичного значения 11011011 требуется только две шестнадцатеричные цифры «DB».
Компьютерная память организована как массив строк битов, называемых байтами. На современных компьютерах каждый байт обычно содержит восемь битов, которые удобно представить в виде двух шестнадцатеричных цифр. Инженеры и компьютерщики часто называют каждое из этих четырехбитных значений полубайтом (иногда пишется как ниббл, см. Компьютерный жаргон).
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричном формате.
В отличие от современных компьютеров, многие ранние компьютеры имели шестибитные байты. Программисты этих систем обычно использовали альтернативную схему группировки битов, называемую восьмеричной. Каждая восьмеричная цифра эффективно представляет три бита, а шестибитовый байт может быть представлен как две восьмеричные цифры.Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это единица, разряда, следующая цифра слева — это десятка, , следующая — сотня, , и т. Д.В шестнадцатеричном формате каждая цифра может быть 16 значений, а не 10. Это означает, что цифры имеют место — это , — шестнадцать — это место, а следующая — это , 256 — это место. Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | Шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичное 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с младшей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг, пока не кончатся цифры.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Simple English Wikipedia, бесплатная энциклопедия
Шестнадцатеричная система счисления , часто сокращаемая до «шестнадцатеричная» , представляет собой систему счисления, состоящую из 16 символов (основание 16).Стандартная система счисления называется десятичной (основание 10) и использует десять символов: 0,1,2,3,4,5,6,7,8,9. В шестнадцатеричном формате используются десятичные числа и шесть дополнительных символов. Нет числовых символов, которые представляют значения больше девяти, поэтому используются буквы, взятые из английского алфавита, в частности A, B, C, D, E и F. Шестнадцатеричный A = десятичный 10 и шестнадцатеричный F = десятичный 15.
Люди в основном используют десятичную систему (основание 10), где каждая цифра может иметь одно из десяти значений от нуля до десяти.Вероятно, это потому, что у людей на руках десять пальцев. Компьютеры обычно представляют числа в двоичном формате (с основанием 2). В двоичной системе каждая «двоичная цифра» называется битом и может иметь только одно из двух значений: единицу или ноль. Поскольку два возможных значения одного бита представляют одну пятую информации, потенциально передаваемой из десяти возможных значений десятичной цифры, для двоичного представления целочисленных значений может потребоваться гораздо больше (двоичных) битов, чем десятичных цифр.
Например, трехзначное десятичное значение 219 требует, чтобы восемь битов были представлены в двоичном виде (11011011).Людям неудобно читать, запоминать и печатать длинные последовательности битов. Шестнадцатеричный формат позволяет более удобно представлять группы из четырех битов одной «шестнадцатеричной» цифрой, поэтому для восьмибитового двоичного значения 11011011 требуется только две шестнадцатеричные цифры «DB».
Компьютерная память организована как массив строк битов, называемых байтами. На современных компьютерах каждый байт обычно содержит восемь битов, которые удобно представить в виде двух шестнадцатеричных цифр. Инженеры и компьютерщики часто называют каждое из этих четырехбитных значений полубайтом (иногда пишется как ниббл, см. Компьютерный жаргон).
Чтобы избежать путаницы с десятичной, восьмеричной или другими системами счисления, шестнадцатеричные числа иногда записываются с буквой «h» после или «0x» перед числом. Например, 63h и 0x63 означают 63 в шестнадцатеричном формате.
В отличие от современных компьютеров, многие ранние компьютеры имели шестибитные байты. Программисты этих систем обычно использовали альтернативную схему группировки битов, называемую восьмеричной. Каждая восьмеричная цифра эффективно представляет три бита, а шестибитовый байт может быть представлен как две восьмеричные цифры.Три бита, каждый из которых включен или выключен, могут представлять восемь чисел от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7.
Шестнадцатеричная система счисления похожа на восьмеричную систему счисления (основание 8), поскольку каждую из них можно легко сравнить с двоичной системой счисления. В шестнадцатеричном формате используется четырехбитное двоичное кодирование. Это означает, что каждая цифра в шестнадцатеричном формате совпадает с четырьмя цифрами в двоичном формате. Octal использует трехбитную двоичную систему.
В десятичной системе первая цифра — это единица, разряда, следующая цифра слева — это десятка, , следующая — сотня, , и т. Д.В шестнадцатеричном формате каждая цифра может быть 16 значений, а не 10. Это означает, что цифры имеют место — это , — шестнадцать — это место, а следующая — это , 256 — это место. Таким образом, 1h = 1 десятичный, 10h = 16 десятичный и 100h = 256 в десятичном.
Примеры значений шестнадцатеричных чисел, преобразованных в двоичные, восьмеричные и десятичные.
|
Двоичное в шестнадцатеричное [изменить | изменить источник]
Для изменения числа с двоичного на шестнадцатеричный используется метод группировки.Двоичное число разделено на группы по четыре цифры, начиная справа. Затем эти группы преобразуются в шестнадцатеричные числа, как показано на приведенной выше диаграмме для шестнадцатеричных чисел от 0 до F. Для перехода с шестнадцатеричного числа выполняется обратное. Каждая шестнадцатеричная цифра заменяется двоичной, и группировка обычно удаляется.
Двоичный | Группы | Шестигранник | |||
---|---|---|---|---|---|
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
Когда количество битов в двоичном числе не кратно 4, оно дополняется нулями, чтобы сделать это так.Примеры:
- двоичное 110 = 0110, что составляет 6 Hex.
- в двоичном формате 010010 = 00010010, что составляет 12 шестнадцатеричных чисел.
Шестнадцатеричное в десятичное [изменить | изменить источник]
Существует два распространенных способа преобразования числа из шестнадцатеричного в десятичное.
Первый метод чаще всего выполняется при ручном преобразовании:
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начать с младшей шестнадцатеричной цифры. Это цифра на правом конце. Это будет первый предмет в сумме.
- Возьмем вторую наименьшую значащую цифру. Это рядом с цифрой на правом конце. Умножьте десятичное значение цифры на 16. Добавьте это к сумме.
- Сделайте то же самое для третьей младшей значащей цифры, но умножьте ее на 16 2 (то есть на 16 в квадрате или 256).Добавьте это к сумме.
- Продолжайте для каждой цифры, умножая каждое место на другую степень 16. (4096, 65536 и т. Д.)
Расположение | ||||||
---|---|---|---|---|---|---|
6 | 5 | 4 | 3 | 2 | 1 | |
Значение | 1048576 (16 5 ) | 65536 (16 4 ) | 4096 (16 3 ) | 256 (16 2 ) | 16 (16 1 ) | 1 (16 0 ) |
Следующий метод чаще используется при программном преобразовании числа.Ему не нужно знать, сколько цифр имеет число до его начала, и оно никогда не умножается более чем на 16, но на бумаге оно выглядит длиннее.
- Используйте десятичное значение для каждой шестнадцатеричной цифры. Для 0–9 это то же самое, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
- Сохраняйте сумму преобразованных чисел на каждом шаге ниже.
- Начните со старшей цифры (цифра в крайнем левом углу). Это первая позиция в сумме.
- Если существует другая цифра, умножьте сумму на 16 и добавьте десятичное значение следующей цифры.
- Повторяйте вышеуказанный шаг, пока не кончатся цифры.
Пример: 5Fh и 3425h в десятичном формате, метод 1
|
|
Пример: 5Fh и 3425h в десятичной системе, метод 2
|
|
Шестнадцатеричный — обзор | Темы ScienceDirect
10.4.4 Описание приложений DIZI
Еще восемь приложений указаны ниже, и исходный код каждого из них указан в программе 10.4. Их можно загрузить с сайта www.picmicros.org.uk и протестировать в режиме моделирования в MPSIM или ISIS (если доступно). Если оборудование DIZI сконструировано, оно может быть запрограммировано в микросхему 16F84A с помощью внешнего программатора.
Программы 10.4. 8 приложений DIZI.
HEX1 Hex Converter
Отображается шестнадцатеричное число, соответствующее двоичной настройке входов DIP-переключателя.Входные переключатели выбирают из таблицы 16 семисегментных кодов, которые управляют дисплеем в требуемом шаблоне для каждой шестнадцатеричной цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d и E. Обратите внимание, что числа B и D отображаются в нижнем регистре, чтобы их можно было отличить от 8 и 0 соответственно.
Отображение сообщений MESS1
Последовательность символов отображается в течение примерно 0,5 с каждый. Большинство букв алфавита можно получить на семисегментном дисплее в верхнем или нижнем регистре, например «ПРИВЕТ».Количество символов должно быть установлено в счетчике или используется символ завершения.
SEC1 Счетчик секунд
Отображается вывод, который ведет обратный отсчет ровно один раз в секунду, от 0 до 9, а затем повторяется. Таблица кодов дисплея требуется, как и в приложении Hex Converter. Задержка в 1 с может быть достигнута с помощью аппаратного таймера (глава 6) и резервного регистра. На аудиовыходе можно было поставить галочку, пульсируя динамик на каждом шаге.
Таймер реакции REACT1
Время реакции пользователя проверяется путем генерации случайной задержки от 1 до 10 с, выдачи звукового сигнала и отсчета времени задержки до нажатия кнопки ввода.Число, представляющее время между звуком и входом, кратное 100 мс, должно отображаться как число 0–9, что дает максимальное время реакции 900 мс.
GEN1 AF Generator
Генератор звуковой частоты выдает частоты в диапазоне от 20 Гц до 20 кГц. Выход сирены переключается с задержкой между каждой операцией, определяемой требуемой частотой, как в программе BUZZ1. Например, для частоты 1 кГц требуется задержка в 1 мс, что составляет 1000 циклов команд при времени цикла 1 мкс.Информация о синхронизации программы должна быть изучена в главе 6. Время задержки и, следовательно, частота, затем могут быть увеличены с помощью кнопки ввода, а также может быть включен выбор диапазона с помощью входных переключателей, поскольку при использовании доступно только 255 шагов. 8-битный регистр в качестве счетчика периодов.
MET1 Метроном
Звуковой импульс выводится со скоростью, установленной DIP-переключателями или кнопками ввода. Такт вывода можно регулировать, скажем, от 1 до 4 ударов в секунду, используя кнопку прерывания для увеличения или уменьшения скорости и кнопку ввода для выбора увеличения или уменьшения.Программный цикл или регистр TMR0 могут использоваться для обеспечения необходимых временных задержек.
BELL1 Дверной звонок
Мелодия воспроизводится при нажатии кнопки ввода с использованием таблицы поиска программы для частоты и продолжительности тона. Каждый тон должен воспроизводиться в течение подходящего времени или количества циклов, как того требует мелодия. Программа может быть разработана путем выбора мелодии с помощью DIP-переключателей и отображения номера выбранной мелодии.
GIT1 Guitar Tuner
Программа позволит пользователю переключаться между частотами для настройки струн гитары или другого музыкального инструмента с помощью кнопки ввода или выбора тембра с помощью DIP-переключателей.Программа может быть расширена путем отображения номера настраиваемой струны. Частоты тона будут генерироваться как для дверного звонка. Коды цифрового дисплея также потребуются в таблице.
Вопросы 10
- 1.
Назовите одно преимущество и один недостаток: (а) макетной платы; (б) картон; (c) моделирование для тестирования прототипов. (6)
- 2.
Укажите выходной двоичный код для: (a) выключения всех сегментов и (b) отображения цифры «2» на общем катодном семисегментном светодиодном дисплее, предполагая соединения, показанные на рисунке 10. .15. (4)
- 3.
Обрисуйте алгоритм для генерации выходного сигнала фиксированной частоты приблизительно 1 кГц с платы DIZI с использованием аппаратного таймера. (5)
- 4.
Нарисуйте блок-схему, представляющую процесс генерации «случайной» задержки между нажатием кнопки и включением выходного светодиода. (5)
Ответы на странице 423. (Всего 20 баллов)
Задания 10
- 1.
Соберите схему DIZI на макетной плате, стрип-плате или печатной плате и протестируйте программы BUZZ1, DICE1 и SCALE1.
- 2.
Подтвердите расчетом или моделированием, что значения, используемые в таблице данных программы в SCALE1.ASM, дадут требуемые задержки.
- 3.
Разработайте макет для схемы BIN, показанной на рисунке 3.3. Соберите схему и протестируйте программы BINx.
- 4.
Разработайте и внедрите одну из программ, описанных для оборудования DIZI, и сравните свое решение с модельными программами, предоставленными для HEX1, MESS1, SEC1, REACT1, GEN1, MET1, BELL1 или GIT1.
- 5.
- (a)
Изучите, как можно обнаружить ввод с цифровой клавиатуры. См. Главу 1, раздел 1.4.1. Типичная клавиатура, показанная на рисунке 10.17, имеет 12 клавиш в четырех рядах по три: 1, 2, 3; 4, 5, 6; 7, 8, 9; * , 0, #. Они подключены к семи терминалам и могут сканироваться по строкам и столбцам. Нажатие клавиши определяется как соединение между строкой и столбцом. Подтягивающие резисторы гарантируют, что по умолчанию на всех линиях будет установлена логическая «1».Если «0» применен к одному из выводов столбца (C1, C2, C3) и нажата клавиша, этот «0» может быть обнаружен на выводе строки (R1, R2, R3, R4). Если терминалы клавиатуры подключены к порту PIC и выход «0» поочередно к трем столбцам, ключ может быть обнаружен как комбинация выбранного столбца и обнаруженной строки. Терминалы столбцов могут быть установлены как выходы, а строки как входы. Нарисуйте блок-схему, чтобы представить процесс преобразования каждого десятичного ключа в соответствующий номер BCD.
Рисунок 10.17. Подключения клавиатуры
- (b)
Функция блокировки может быть реализована путем сопоставления входной последовательности с сохраненной последовательностью, скажем, из четырех цифр и включения выхода на соленоид двери, если обнаружено совпадение. Укажите оборудование и наметьте программу для приложения блокировки.
- (c)
Спроектируйте, соберите и протестируйте систему электронного замка, используя показанную клавиатуру, подходящий PIC и светодиод для индикации состояния замка (ВКЛ = разблокирован).Изучите конструкцию интерфейса для дверного замка с соленоидным приводом.
Примечание. Сканирование клавиатуры используется в программе 13.1 и приложении блокировки, описанном в Приложении D.
Что такое шестнадцатеричный? — Определение с сайта WhatIs.com
К
Шестнадцатеричная система счисления описывает систему счисления с основанием 16. То есть он описывает систему нумерации, содержащую 16 последовательных чисел в качестве основных единиц (включая 0) перед добавлением новой позиции для следующего числа.(Обратите внимание, что мы используем здесь «16» как десятичное число, чтобы объяснить число, которое будет «10» в шестнадцатеричном формате.) Шестнадцатеричные числа — это 0–9, а затем используются буквы A – F. Мы показываем эквивалентность двоичных, десятичных и шестнадцатеричных чисел в таблице ниже.
Шестнадцатеричный формат — это удобный способ выражения двоичных чисел в современных компьютерах, в которых байт почти всегда определяется как содержащий восемь двоичных цифр. При отображении содержимого компьютерной памяти (например, при получении дампа памяти для отладки новой компьютерной программы или при отображении строки текстовых символов или строки двоичных значений при кодировании программы или HTML-страницы) один шестнадцатеричная цифра может представлять собой расположение четырех двоичных цифр.Две шестнадцатеричные цифры могут представлять восемь двоичных цифр или байт.
Двоичный | Десятичное | Шестнадцатеричный |
---|---|---|
0 | 0 | 0 |
1 | 1 | 1 |
10 | 2 | 2 |
11 | 3 | 3 |
100 | 4 | 4 |
101 | 5 | 5 |
110 | 6 | 6 |
111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | 9 |
1010 | 10 | A |
1011 | 11 | B |
1100 | 12 | С |
1101 | 13 | D |
1110 | 14 | E |
1111 | 15 | F |
10000 | 16 | 10 |
10001 | 17 | 11 |
и т. |