Иллюстрированный самоучитель по Mathematica 5

Позиционные системы счисления. Преобразование в десятичную систему счисления. Преобразование из десятичной системы счисления в недесятичную.

Хорошо, конечно, что 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, шумеры долгое время не знали. Дело в том, что они не сразу осилили концепцию числа как последовательности цифр, или списка цифр.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.