Перетворення системи числення

Ruby — відносно нова об'єктно-орієнтована мова, розроблена Юкіхіро Мацумото в 1995 році і запозичила деякі особливості у мов LISP, Smalltalk, Perl, CLU та інших. Мова активно розвивається і застосовується в різних областях: від системного адміністрування до розробки складних динамічних сайтів.

Видання призначене для програмістів найширшого кола та найрізноманітнішої кваліфікації, які бажають навчитися якісно та професійно працювати на Ruby.

Програмування мовою Ruby

5.18. Перетворення системи числення

5.18. Перетворення системи числення

Ясно, що будь-яке ціле число можна уявити у будь-якій системі числення, оскільки зберігаються ці числа у двійковому вигляді. Ми знаємо, що Ruby вміє працювати з цілими константами, записаними в будь-якій з чотирьох найпопулярніших систем. Отже, розмова про перетворення системи числення може вестися лише стосовно числам, записаним у вигляді рядків.

Питання про перетворення рядка на ціле розглянуто у розділі 2.24. Для перетворення числа в рядок найпростіше скористатися методом to_s , якому ще можна передати основу системи числення. За умовчанням воно дорівнює 10, але в принципі може бути будь-яким до 36 (коли задіяні всі літери латинського алфавіту).

237.to_s(2) # "11101101" 237.to_s(5) # "1422" 237.to_s(8) # "355" 237.to_s # "237" 237 .to_s(16) # "ed" 237.to_s(30) # "7r"

Інший спосіб - звернутися до методу % класу String:

hex = "%x" % 1234 # "4d2" окт = "%о" % 1234 # "2322" bin = "%b" % 1234 # "10011010010"

Метод sprintf теж годиться:

str = sprintf(str,"Nietzsche is %xn",57005) # str тепер одно: "Nietzsche is deadn"

Якщо потрібновідразу ж вивести перетворене в рядок значення, то підійде метод printf .