Другие языки программирования и технологии

Системы счисления, перевод.

Чтобы перевести из 10-ой системы в любую надо делить на нужную системы счисления;
Чтобы перевести из любой системы счисления в любую надо умножать;

А что надо сделать, чтобы перевести из любой в любую?
Обычно переводят сначала из первой в десятичную, а уже из десятичной в другую.
Миша Громовой
Миша Громовой
3 875
Лучший ответ
™•••... Куаныш Еркебаев...••• ™ Тогда, чтобы моя программа правильно переводила, необходимо чтобы она изначально сканировала условия?
Тоже делить. Просто в произвольной системе это может быть не совсем тривиальной задачей, из-за отсутствия привычки к этой системе.
Ну например для перевода из двоичной в десятичную надо делить на 1010, а остатки записать в обратном порядке в десятичном виде. Как-то не очень удобно.
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:

число6372
позиция3210
Тогда число 6372 можно представить в следующем виде:

6372=6000+300+70+2 =6·103+3·102+7·101+2·100.

Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.

Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:

число1287.923
позиция3210 -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
Система счисления
102816
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Перевод чисел из одной системы счисления в другую
Для перевода чисел с одной системы счисления в другую, проще всего сначала перевести число в десятичную систему счисления, а затем, из десятичной системы счисления перевести в требуемую систему счисления.

Перевод чисел из любой системы счисления в десятичную систему счисления
С помощью формулы (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 из десятичной СС в двоичную СС:

1592
158792
178392
138192
11892
1842
1422
021
0
Рис. 1

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т. д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111. Следовательно можно записать:

15910=100111112.

Пример 5. Переведем число 615 из десятичной СС в в
™•••... Куаныш Еркебаев...••• ™ Википедии мне только не хватало...