Позиционные системы счисления. Преобразование в десятичную систему счисления. Преобразование из десятичной системы счисления в недесятичную.
Хорошо, конечно, что Mathematica, как мы уже видели, действительно умеет многое делать с числами в десятичной системе счисления. Но умеет ли она преобразовывать числа из одной системы счисления в другую? Оказывается, да! Правда, нужно сразу оговориться, что основанием позиционной системы должно быть натуральное число, притом большее 1. Так что никаких комплексных оснований и тем более фибоначчиевых или факториальных систем счисления!
Чтобы ввести число в какой-нибудь системе счисления, сначала нужно указать (в десятичном виде) основание системы счисления n (натуральное число, причем 2<и<36), затем два знака ^^ (крыша), а потом само представление неотрицательного вещественного (или целого) числа без знака в системе счисления с основанием n. Цифры, большие 9, изображаются латинскими буквами от а до z, причем а = 10, b = 11 и т.д., в порядке (латинского) алфавита аж до z = 36. Вот несколько примеров.
{
2
^
^
1.2
^
^
10.2
^
^
100.2
^
^
1000.2
^
^
101
}
{
1.2.4.8.5
}
16
^
^
ffffaa00
42949452.80
2
^
^
1001001010110111.11110
37559.9
Только что мы научились преобразовывать числа из недесятичной системы счисления в десятичную. А как же выполнить обратное преобразование, т.е. преобразовать число из десятичной системы в недесятичную?
Преобразование из десятичной системы счисления в недесятичную
Чтобы преобразовать число из десятичной системы счисления в недесятичную, нужно вызвать функцию BaseForm, причем в качестве первого ее аргумента нужно указать преобразуемое число, а в качестве второго – основание системы счисления, в которую преобразуется число. В качестве основания системы счисления может быть натуральное число и, такое, что 2<n<36. Вот примеры.
BaseForm[
377456783746590.2
]
10101011101001011100000011000001101100110000111102
BaseForm[
377456783746590.16
]
1574b8183661e16
BaseForm[
377456783746590.60
]
BaseForm::basf:Requested base
60
should be between
2
and
36
. More...
BaseForm[
377456783746590.60
]
Как видите, если указать основание системы счисления, большее 36, функция "заругается". Так что шумерам и древним вавилонянам крупно не повезло бы, попытайся они записать какое-нибудь число, например 1000000, в своей любимой шестидесятеричной системе счисления. Впрочем, числа, большего 3600, шумеры долгое время не знали. Дело в том, что они не сразу осилили концепцию числа как последовательности цифр, или списка цифр.