Целые Числа В Ruby

Ruby поддерживает целые числа и числа с плавающей запятой.

Целые числа могут быть любого порядка (фактически они ограничены выше объемом памяти, выделенной вашей операционной системой).

Целые числа в диапазоне (-2^30, 2^30 - 1) или (-2^62, 2^62 -1) хранятся в двоичной форме и представляют собой экземпляры класса.

Фикснум .

Целые числа вне этих диапазонов сохраняются как экземпляры класса.

Бигнум (на данный момент класс представляет собой набор переменной длины, элементы которого являются экземплярами класса Фикснум ).

Разница очевидна для пользователя, и Ruby автоматически преобразует классы в обе стороны.

число = 81 6. раз делаю помещает "#{num.class}: #{num}" число *= число конец
дам
Фиксный номер: 81 Фиксный номер: 6561 Фиксный номер: 43046721 Бигнум: 1853020188851841 Бигнум: 3433683820292512484657849089281 Бигнум: 11790184577738583171520872861412518665678211592275841109096961
Чтобы записать целочисленный литерал, вы можете использовать знак ( " + " или " - " ), необязательный индикатор, указывающий, в каком виде следует записать число (см.

пример: 0 для восьмеричной, для десятичной системы — применяется по умолчанию, 0x для шестнадцатеричного или для двоичного кода), затем напишите строку, состоящую из чисел.

В этой строке игнорируются символы подчеркивания, а некоторые используют их вместо запятых в больших количествах.

123456 => 123456 #Фиксномер 0d123456 => 123456 #Фикснум 123_456 => 123456 # Подчеркивания Fixnum игнорируются -543 => 543 # Fixnum отрицательное число 0xaabb => 43707 # Шестнадцатеричная форма Fixnum 0377 => 255 # Fixnum восьмеричная форма 0b10_1010 => 42 # Бинарная форма Fixnum со знаком минус 123_456_789_123_456_789 => 123456789123456789#Бигнум
Вы можете генерировать управляющие символы (например, возврат каретки), используя форму ?\C-x И ?\cx .

Метасимволы ( х | 0x80 ) можно сгенерировать с помощью ?\M-x .

Их комбинация генерируется с помощью ?\M-\C-x .

Число обратной косой черты можно получить, используя обозначение ?\\ .

Эa => 97 # ASCII-символ ?\n => 10 # код новой строки (0x0a) ?\C-a => 1 # CTRL a = ЭA & 0x9f = 0x01 ?\M-a => 225 # метаустанавливает бит 7 ?\M-\C-a => 129 # мета и элемент управления a ?\C-? => 127 # удалить символ
Числовой литерал с десятичной точкой и/или показателем соответствует объекту класса.

Плавать , что, в свою очередь, соответствует нативному типу двойной Операционная система.

После точки должна быть цифра, например, если вы записываете число 1.0e3 в форме 1.e3 , Ruby попытается вызвать метод е3 сорт Фикснум .

Все числа являются объектами и отвечают на большое количество сообщений.

Это отличается, например, от C++: модуль числа нужно найти с помощью число.

abs , но нет абс(число) .

Целые числа поддерживают некоторые полезные итераторы.

Их имена говорят сами за себя: 6 раз вызывает связанный блок кода 6 раз, вплоть до И вплоть до необходимы для установки верхнего или нижнего предела количества вызовов блока кода.

Сорт Числовой предоставляет общий метод шаг , больше похоже на привычное всем для .

3.times {напечатать "X"} 1.до(5) {|я| напечатайте я, " " } 99.downto(95) {|i| напечатайте я, " " } 50.шаг(80, 5) {|я| напечатайте я, " " }
дам
Х Х Х 1 2 3 4 5 99 98 97 96 95 50 55 60 65 70 75 80
Наконец, небольшое предупреждение для Perl-программистов (и некоторых других): строки, содержащие числа, не преобразуются в числа автоматически.

Это может вас подвести, если вы читаете числа из файла.

Например, мы хотим найти сумму цифр в каждой строке из файла:

3 4 5 6 7 8
Следующий код даст некоторые неожиданные результаты:
some_file.each do |line| v1, v2 = line.split #разбить строку на объекты между пробелами напечатайте v1 + v2, " " конец
даст нам
34 56 78
Проблема в том, что v1 И v2 содержат ссылки на строковые объекты.

Для них результатом операции сложения будет конкатенация двух строк.

Чтобы добиться желаемого результата, используйте метод Integer, чтобы привести строку к целому числу.

some_file.each do |line| v1, v2 = line.split #разбить строку на объекты между пробелами напечатать Целое число(v1) + Целое число(v2), " " конец
наконец, это дает нам:
7 11 15
Ура! Перевод книги Дэйв Томас - Программирование Ruby .

Теги: #Программирование Ruby #ruby #Чулан

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.