التابع size‎ الخاص بالصنف Integer في روبي

من موسوعة حسوب
< Ruby‏ | Integer
مراجعة 17:59، 15 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>size‎</code> الخاص بالصنف <code>Integer</code> في روبي}}</noinclude> تصنيف: Ruby تصني...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع size‎ عدد بتات قيمة العدد الذي استُدعي معه.


يُقصد بـ "عدد البتات" موضع أعلى بتة والتي تختلف عن بتة الإشارة [sign bit] (حيث يكون موضع البتة الأقل دلالة [least significant bit] هو 1). إذا لم يكن تلك البتة موجودة (أي إذا كانت قيمة الموضع صفر أو ناقص واحد) ، فسيُعاد الصفر.


هذا التابع يعيد ناتج التعبير ceil(log2(int < 0 ? -int : int+1))‎.


يمكن استخدام هذا التابع لرصد التجاوزات (overflow) في Array#pack ، كما يلي:

if n.size < 32

  [n].pack("l") # no overflow

else

  raise "overflow"

end

البنية العامة

size    int

المعاملات

القيمة المُعادة

يعيد التابع size‎ عدد بتات قيمة العدد الذي استُدعي معه.


يُقصد بـ "عدد البتات" موضع أعلى بتة والتي تختلف عن بتة الإشارة [sign bit] (حيث يكون موضع البتة الأقل دلالة [least significant bit] هو 1). إذا لم يكن تلك البتة موجودة (أي إذا كانت قيمة الموضع صفر أو ناقص واحد) ، فسيُعاد الصفر.


هذا التابع يعيد ناتج التعبير ceil(log2(int < 0 ? -int : int+1))‎.


يمكن استخدام هذا التابع لرصد التجاوزات (overflow) في Array#pack ، كما يلي:

if n.size < 32

  [n].pack("l") # no overflow

else

  raise "overflow"

end

أمثلة

مثال على استخدام التابع size‎:

1.size               #=> 8
-1.size              #=> 8
2147483647.size      #=> 8
(256**10 - 1).size   #=> 10
(256**20 - 1).size   #=> 20
(256**40 - 1).size   #=> 40

انظر أيضا

  • التابع bit_length: يعيد التابع bit_length‎ عدد بتات قيمة العدد الذي استُدعي معه.


يُقصد بـ "عدد البتات" موضع أعلى بتة والتي تختلف عن بتة الإشارة [sign bit] (حيث يكون موضع البتة الأقل دلالة [least significant bit] هو 1). إذا لم يكن تلك البتة موجودة (أي إذا كانت قيمة الموضع صفر أو ناقص واحد) ، فسيُعاد الصفر.


هذا التابع يعيد ناتج التعبير ceil(log2(int < 0 ? -int : int+1))‎.


يمكن استخدام هذا التابع لرصد التجاوزات (overflow) في Array#pack ، كما يلي:

if n.bit_length < 32

  [n].pack("l") # no overflow

else

  raise "overflow"

end

مصادر