В данной статье я расскажу основы компьютерной техники - это двоичная система. Это самый низкий уровень, это числа по которым работает компьютер. И вы узнаете как переводить из одной системы
Таблица 1 - Представление чисел в различных системах
исчисление (начало)
Системы счисления |
||||
Десятичная |
Двоичная |
Восьмеричная |
Шестнадцатеричная |
двоично-десятичная |
Для того чтобы перевести из десятичной в двоичную, можно использовать два варианта.
1) К примеру число 37 нужно перевести из десятичной системы в двоичную, то нужно его делить на два, а затем проверять остаток от деления. Если остаток нечетный, то в низу мы подписывает единицу и следующий цикл деления идет через четное число, если останок от деления четный, то пишим ноль. На конце обязательно должна получиться 1. А теперь полученный результат мы преобразуем в двоичный, причем число идет справа на лево.
Пошагово: 37 - это число нечетное, значит 1 , затем 36/2 = 18. Число четное, значит 0 . 18/2 = 9 число нечетное, значит 1 , затем 8/2 = 4. Число четное, зачит 0 . 4/2 = 2, число четное значит 0 , 2/2 = 1 .
Итак, мы получили число. Не забудьте счет идет справа налево: 100101 - вот мы получили число в двоичной системе. А вообще это записывается в виде деления в столбик, как вы видите ниже на рисунке:
2) Но есть второй способ. Он мне больше нравиться. Перевод из одной системы в другую идет в следующем виде:
где ai - i-я цифра числа;
k - количество цифр в дробной части числа;
m - количество цифр в целой части числа;
N - основание системы исчисления.
Основание системы счисления N показывает, во сколько раз "вес" i-го разряда больше "веса" (i-1) разряда. Целая часть числа отделяется от дробной части точкой (запятой).
Целая часть числа AN1, с основой N1, переводится в систему счисления с основанием N2 путем последовательного деления целой части числа AN1 на записанную в виде числа с основанием N1 основу N2, до получения остатка.Полученная доля снова делится на основание N2, и этот процесс необходимо повторять, пока частица не станет меньше делителя. Полученные остатки от деления и последняя часть записываются в порядке, обратном полученном при делении. Сформированное число и будет целым числом с основанием N2.
Дробная часть числа AN1, с основой N1, переводится в систему счисления с основанием N2 путем последовательного умножения дробной части числа AN1 на основание N2, записанную в виде числа с основанием N1. При каждом умножении целая часть произведения берется в виде очередной цифры соответствующего разряда, а дробная часть оставшейся принимается за новую умножений. Число умножений определяет разрядность полученного результата, представляющий дробную часть числа AN1 в системе счисления N2. Дробная часть числа при переводе часто представляется неточно.
Давайте это сделаем на примере:
Перевод с десятичной в двоичную
37 в десятичной нужно перевести в двоичную. Давайте поработаем со степенями:
2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1024 и так далее... до бесконечности
Значит: 37 - 32 = 5. 5 - 4 = 1. Ответ следующий в двоичной системе: 100101.
Давайте переведем число 658 из десятичной в двоичную:
658-512=146
146-128=18
18-16=2. В двоичной системе число будет иметь вид: 1010010010.
Перевод с десятичной в восмеричную
Если вам надо перевести с десятичной в восьмеричную, необходимо сначала перевести в двоичную, а затем с двоичной перевести в восьмеричную. То есть так проще, хотя можно и сразу перевести. По алгоритму подобному как в переводе в двоичную, см. выше.
Перевод с десятичной в шестнадцатеричной
Если вам надо перевести с десятичной в шестнадцатеричную, необходимо сначала перевести в двоичную, а затем с двоичной перевести в шестнадцатеричную. То есть так проще, хотя можно и сразу перевести. По алгоритму подобному как в переводе в двоичную, см. выше.
Перевод с двоичной в восмеричную
Чтобы перевести число из двоичной в восьмиричную систему нужно двоичное разбить по три числа.
К примеру полученное число 1010010010 разбивает по три числа, причем разбивка идет справа налево: 1 010 010 010 = 1222. Смотрите таблицу в самом начале.
Перевод с двоичной в шестнадцатеричную
Чтобы перевести число из двоичной в шестнадцатеричное, надо разбить на тетрады (по четыре)
10 1001 0010 = 292
Привожу несколько примеров, для того, чтобы вы просмотрели:
Перевод осуществляется из двоичной в восьмиричную, затем в шестнадцатеричную, а затем из двоичной десятичную
(2) = 11101110
(8) = 11 101 110 = 276
(16) = 1110 1110 = EE
(10) = 1*128+ 1*64+ 1*32+ 0 +1*8 + 1*4 + 1*2+ 0= 238
3) (8) = 657
Перевод осуществляется из шестнадцатеричной в двоичную, затем в восьмиричную, а затем из двоичной десятичную
(16) = 6E8
(2) = 110 1110 1000
(8) = 11 011 101 000 = 2250
(10) = 1*1024+1*512+ 0 +1*128+ 1*64+ 1*32+ 8 = 1768
Чтобы быстро переводить числа из десятичной системы счисления в двоичную, нужно хорошо знать числа "2 в степени". Например, 2 10 =1024 и т.д. Это позволит решать некоторые примеры на перевод буквально за секунды. Одной из таких задач является задача A1 из демо ЕГЭ 2012 года . Можно, конечно, долго и нудно делить число на "2". Но лучше решать по-другому, экономя драгоценное время на экзамене. Метод очень простой. Суть его такая: если число, которое нужно перевести из десятичной системы, равно числу "2 в степени", то это число в двоичной системе содержит количество нулей, равное степени. Впереди этих нулей добавляем "1".
Аналогично и для других чисел "2 в степени". Если число, которое нужно перевести, меньше числа "2 в степени" на 1, то в двоичной системе это число состоит только из единиц, количество которых равно степени.
На рисунке квадратиками обозначено двоичное представление числа, а слева розовым цветом-десятичное. Аналогичен перевод и для других чисел "2 в степени-1". Понятно, что перевод чисел от 0 до 8 можно сделать быстро или делением, или просто знать наизусть их представление в двоичной системе. Я привела эти примеры, чтобы Вы поняли принцип данного метода и использовали его для перевода более "внушительных чисел", например, для перевода чисел 127,128, 255, 256, 511, 512 и т.д. Можно встретить такие задачи, когда нужно перевести число, не равное числу "2 в степени", но близкое к нему. Оно может быть больше или меньше числа "2 в степени". Разница между переводимым числом и числом "2 в степени" должна быть небольшая. Например, до 3. Представление чисел от 0 до 3 в двоичной системе надо просто знать без перевода. Если число
больше
, то решаем так: Переводим сначала число "2 в степени" в двоичную систему. А потом прибавляем к нему разницу между числом "2 в степени" и переводимым числом.
Например, переведем 19 из десятичной системы. Оно больше числа "2 в степени" на 3. 16=2 4 . 16 10 =10000 2 . 3 10 =11 2 . 19 10 =10000 2 +11 2 =10011 2 . Если число меньше числа "2 в степени", то удобнее пользоваться числом "2 в степени-1". Решаем так: Переводим сначала число "2 в степени-1" в двоичную систему. А потом вычитаем из него разницу между числом "2 в степени-1" и переводимым числом. Например, переведем 29 из десятичной системы. Оно больше числа "2 в степени-1" на 2. 29=31-2. 31 10 =11111 2 . 2 10 =10 2 . 29 10 =11111 2 -10 2 =11101 2 Если разница между переводимым числом и числом "2 в степени" больше трех , то можно разбить число на составляющие, перевести каждую часть в двоичную систему и сложить. Например, перевести число 528 из десятичной системы. 528=512+16. Переводим отдельно 512 и 16. Результат уже получен! Системы счисленияСуществуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля: Тогда число 6372 можно представить в следующем виде: 6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 . Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа. Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо: Тогда число 1287.923 можно представить в виде: 1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 . В общем случае формулу можно представить в следующем виде: Ц n ·s n +Ц n-1 ·s n-1 +...+Ц 1 ·s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k где Ц 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) можно перевести числа из любой системы счисления в десятичную систему счисления. Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение: 1 ·2 6 +0 ·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +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 из десятичной СС в двоичную СС:
Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111 . Следовательно можно записать: 159 10 =10011111 2 . Пример 5 . Переведем число 615 из десятичной СС в восьмеричную СС.
При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147 (см. Рис. 2). Следовательно можно записать: 615 10 =1147 8 . Пример 6 . Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.
Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 - D. Следовательно наше шестнадцатеричное число - это 4CD9. Для перевода правильных десятичных дробей (вещественное число с нулевой целой частью) в систему счисления с основанием s необходимо данное число последовательно умножить на s до тех пор, пока в дробной части не получится чистый нуль, или же не получим требуемое количество разрядов. Если при умножении получится число с целой частью, отличное от нуля, то эту целую часть не учитывать (они последовательно зачисливаются в результат). Рассмотрим вышеизложенное на примерах. Пример 7 . Переведем число 0.214 из десятичной системы счисления в двоичную СС.
Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011 . Следовательно можно записать: 0.214 10 =0.0011011 2 . Пример 8 . Переведем число 0.125 из десятичной системы счисления в двоичную СС.
Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат: 0.125 10 =0.001 2 . Пример 9 . Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.
Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем: 0.214 10 =0.36C8B4 16 . Пример 10 . Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.
Получили: 0.512 10 =0.406111 8 . Пример 11 . Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим: 159.125 10 =10011111.001 2 . Пример 12 . Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим. Способы перевода чисел из одной системы счисления в другую. Перевод чисел из одной позиционной системы счисления в другую: перевод целых чисел. Чтобы перевести целое число из одной системы счисления с основанием d1 в другую с основанием d2 необходимо последовательно делить это число и получаемые частные на основание d2 новой системы до тех пор, пока не получится частное меньше основания d2. Последнее частное - старшая цифра числа в новой системе счисления с основанием d2, а следующие за ней цифры - это остатки от деления, записываемые в последовательности, обратной их получению. Арифметические действия выполнять в той системе счисления, в которой записано переводимое число. Пример 1. Перевести число 11(10) в двоичную систему счисления. Ответ: 11(10)=1011(2). Пример 2. Перевести число 122(10) в восьмеричную систему счисления.
Пример 3. Перевести число 500(10) в шестнадцатеричную систему счисления.
Перевод чисел из одной позиционной системы счисления в другую: перевод правильных дробей. Чтобы перевести правильную дробь из системы счисления с основанием d1 в систему с основанием d2, необходимо последовательно умножать исходную дробь и дробные части получающихся произведений на основание новой системы счисления d2. Правильная дробь числа в новой системе счисления с основанием d2 формируется в виде целых частей получающихся произведений, начиная с первого. При переводе смешанных чисел, необходимо в новую систему перевести отдельно целую и дробную части по правилам перевода целых чисел и правильных дробей, а затем оба результата объединить в одно смешанное число в новой системе счисления. Пример 1. Перевести число 0,625(10) в двоичную систему счисления.
Пример 2. Перевести число 0,6(10) в восьмеричную систему счисления.
Пример 2. Перевести число 0,7(10) в шестнадцатеричную систему счисления.
Перевод двоичных, восьмеричных и шестнадцатеричных чисел в десятичную систему счисления. Для перевода числа P-ичной системы в десятичную необходимо использовать следующую формулу разложения: Пример 1. Перевести число 101,11(2) в десятичную систему счисления. Ответ: 101,11(2)= 5,75(10) . Пример 2. Перевести число 57,24(8) в десятичную систему счисления. Ответ: 57,24(8) = 47,3125(10) . Пример 3. Перевести число 7A,84(16) в десятичную систему счисления. Ответ: 7A,84(16)= 122,515625(10) . Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему счисления и обратно. Для перевода числа из восьмеричной системы счисления в двоичную необходимо каждую цифру этого числа записать трехразрядным двоичным числом (триадой). Пример: записать число 16,24(8) в двоичной системе счисления.
Для обратного перевода двоичного числа в восьмеричную систему счисления, необходимо исходное число разбить на триады влево и вправо от запятой и представить каждую группу цифрой в восьмеричной системе счисления. Крайние неполные триады дополняют нулями. Пример: записать число 1110,0101(2) в восьмеричной системе счисления.
Для перевода числа из шестнадцатеричной системы счисления в двоичную необходимо каждую цифру этого числа записать четырехразрядным двоичным числом (тетрадой). Пример: записать число 7A,7E(16) в двоичной системе счисления. Примечание: незначащие нули слева для целых чисел и справа для дробей не записываются. Для обратного перевода двоичного числа в шестнадцатеричную систему счисления, необходимо исходное число разбить на тетрады влево и вправо от запятой и представить каждую группу цифрой в шестнадцатеричной системе счисления. Крайние неполные триады дополняют нулями. Пример: записать число 1111010,0111111(2) в шестнадцатеричной системе счисления. Замечание 1 Если вы хотите перевести число из одной системы счисления в другую, то удобнее для начала перевести его в десятичную систему счисления, и уже только потом из десятичной перевести в любую другую систему счисления. Правила перевода чисел из любой системы счисления в десятичнуюВ вычислительной технике, использующей машинную арифметику, большую роль играет преобразование чисел из одной системы счисления в другую. Ниже приведем основные правила таких преобразований (переводов). При переводе двоичного числа в десятичное требуется представить двоичное число в виде многочлена , каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $2$, а затем нужно вычислить многочлен по правилам десятичной арифметики: $X_2=A_n \cdot 2^{n-1} + A_{n-1} \cdot 2^{n-2} + A_{n-2} \cdot 2^{n-3} + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$ Рисунок 1. Таблица 1 Пример 1 Число $11110101_2$ перевести в десятичную систему счисления. Решение. Используя приведенную таблицу $1$ степеней основания $2$, представим число в виде многочлена: $11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 64 + 32 + 16 + 0 + 4 + 0 + 1 = 245_{10}$ Для перевода числа из восьмеричной системы счисления в десятичную требуется представить его в виде многочлена, каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $8$, а затем нужно вычислить многочлен по правилам десятичной арифметики: $X_8 = A_n \cdot 8^{n-1} + A_{n-1} \cdot 8^{n-2} + A_{n-2} \cdot 8^{n-3} + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$ Рисунок 2. Таблица 2 Пример 2 Число $75013_8$ перевести в десятичную систему счисления. Решение. Используя приведенную таблицу $2$ степеней основания $8$, представим число в виде многочлена: $75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_{10}$ Для перевода числа из шестнадцатеричной системы счисления в десятичную необходимо его представить в виде многочлена, каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $16$, а затем нужно вычислить многочлен по правилам десятичной арифметики: $X_{16} = A_n \cdot 16^{n-1} + A_{n-1} \cdot 16^{n-2} + A_{n-2} \cdot 16^{n-3} + ... + A_2 \cdot 16^1 + A_1 \cdot 16^0$ Рисунок 3. Таблица 3 Пример 3 Число $FFA2_{16}$ перевести в десятичную систему счисления. Решение. Используя приведенную таблицу $3$ степеней основания $8$, представим число в виде многочлена: $FFA2_{16} = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_{10}$ Правила перевода чисел из десятичной системы счисления в другую
Пример 4 Число $22_{10}$ перевести в двоичную систему счисления. Решение: Рисунок 4. $22_{10} = 10110_2$
Пример 5 Число $571_{10}$ перевести в восьмеричную систему счисления. Решение: Рисунок 5. $571_{10} = 1073_8$
Пример 6 Число $7467_{10}$ перевести в шестнадцатеричную систему счисления. Решение: Рисунок 6. $7467_{10} = 1D2B_{16}$ Для того чтобы перевести правильную дробь из десятичной системы счисления в недесятичную, необходимо дробную часть преобразуемого числа последовательно умножить на основание той системы, в которую ее требуется перевести. Дробь в новой системе будет представлена в виде целых частей произведений, начиная с первого. Например: $0,3125_{(10)}$ в восьмеричной системе счисления будет выглядеть как $0,24_{(8)}$. В данном случае можно столкнуться с проблемой, когда конечной десятичной дроби может соответствовать бесконечная (периодическая) дробь в недесятичной системе счисления. В данном случае количество знаков в дроби, представленной в новой системе, будет зависеть от требуемой точности. Также нужно отметить, что целые числа остаются целыми, а правильные дроби - дробями в любой системе счисления. Правила перевода чисел из двоичной системы счисления в другую
Рисунок 7. Таблица 4 Пример 7 Число $1001011_2$ перевести в восьмеричную систему счисления. Решение . Используя таблицу 4, переведем число из двоичной системы счисления в восьмеричную: $001 001 011_2 = 113_8$
|