الفرق بين المراجعتين ل"Ruby/Integer/size"

من موسوعة حسوب
< Ruby‏ | Integer
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>size‎</code> الخاص بالصنف <code>Integer</code> في روبي}}</noinclude> تصنيف: Ruby تصني...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Integer]]
 
[[تصنيف: Ruby Integer]]
يعيد التابع <code>size‎</code> عدد بتات قيمة العدد الذي استُدعي معه.
+
يعيد التابع <code>size‎</code> عدد البتات في تمثيل الآلة (machine representation) للعدد الذي استُدعي معه، النتيجة تتعلق بالآلة المستخدمة.  
 
 
 
 
 
 
يُقصد بـ "عدد البتات" موضع أعلى بتة والتي تختلف عن بتة الإشارة [sign bit] (حيث يكون موضع  البتة الأقل دلالة [least significant bit] هو 1). إذا لم يكن تلك البتة موجودة  (أي إذا كانت قيمة الموضع صفر أو ناقص واحد) ، فسيُعاد الصفر.
 
 
 
 
 
 
 
هذا التابع يعيد ناتج التعبير ''<code>ceil(log2(int < 0 ? -int : int+1))‎</code>''.
 
 
 
 
 
 
 
يمكن استخدام هذا التابع لرصد التجاوزات (overflow) في <code>[[Ruby/Array/pack|Array#pack]]</code> ، كما يلي:<syntaxhighlight lang="ruby">if n.size < 32
 
 
 
  [n].pack("l") # no overflow
 
 
 
else
 
 
 
  raise "overflow"
 
 
 
end</syntaxhighlight>
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">size  →  int‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">size  →  int‎</syntaxhighlight>
==المعاملات==
 
 
==القيمة المُعادة==
 
==القيمة المُعادة==
يعيد التابع <code>size‎</code> عدد بتات قيمة العدد الذي استُدعي معه.  
+
يعيد التابع <code>size‎</code> عدد البتات في تمثيل الآلة للعدد الذي استُدعي معه.  
 
 
 
 
 
 
يُقصد بـ "عدد البتات" موضع أعلى بتة والتي تختلف عن بتة الإشارة [sign bit] (حيث يكون موضع  البتة الأقل دلالة [least significant bit] هو 1). إذا لم يكن تلك البتة موجودة  (أي إذا كانت قيمة الموضع صفر أو ناقص واحد) ، فسيُعاد الصفر.
 
 
 
 
 
 
 
هذا التابع يعيد ناتج التعبير ''<code>ceil(log2(int < 0 ? -int : int+1))‎</code>''.
 
 
 
 
 
 
 
يمكن استخدام هذا التابع لرصد التجاوزات (overflow) في <code>[[Ruby/Array/pack|Array#pack]]</code> ، كما يلي:<syntaxhighlight lang="ruby">if n.size < 32
 
 
 
  [n].pack("l") # no overflow
 
 
 
else
 
 
 
  raise "overflow"
 
 
 
end</syntaxhighlight>
 
 
==أمثلة==
 
==أمثلة==
 
مثال على استخدام التابع <code>size‎</code>:
 
مثال على استخدام التابع <code>size‎</code>:
سطر 60: سطر 19:
 
==انظر أيضا==
 
==انظر أيضا==
 
* التابع <code>[[Ruby/Integer/bit_length|bit_length]]</code>: يعيد التابع <code>bit_length‎</code> عدد بتات قيمة العدد الذي استُدعي معه.  
 
* التابع <code>[[Ruby/Integer/bit_length|bit_length]]</code>: يعيد التابع <code>bit_length‎</code> عدد بتات قيمة العدد الذي استُدعي معه.  
 
 
 
يُقصد بـ "عدد البتات" موضع أعلى بتة والتي تختلف عن بتة الإشارة [sign bit] (حيث يكون موضع  البتة الأقل دلالة [least significant bit] هو 1). إذا لم يكن تلك البتة موجودة  (أي إذا كانت قيمة الموضع صفر أو ناقص واحد) ، فسيُعاد الصفر.
 
 
 
 
هذا التابع يعيد ناتج التعبير ''<code>ceil(log2(int < 0 ? -int : int+1))‎</code>''.
 
 
 
 
يمكن استخدام هذا التابع لرصد التجاوزات (overflow) في <code>[[Ruby/Array/pack|Array#pack]]</code> ، كما يلي:<syntaxhighlight lang="ruby">if n.bit_length < 32
 
 
  [n].pack("l") # no overflow
 
 
else
 
 
  raise "overflow"
 
 
end</syntaxhighlight>
 
  
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/Integer.html#method-i-size قسم  التابع size‎ في الصنف Integer‎ في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/Integer.html#method-i-size قسم  التابع size‎ في الصنف Integer‎ في توثيق روبي الرسمي.]

مراجعة 18:02، 15 أكتوبر 2018

يعيد التابع size‎ عدد البتات في تمثيل الآلة (machine representation) للعدد الذي استُدعي معه، النتيجة تتعلق بالآلة المستخدمة.

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

size    int

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

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

أمثلة

مثال على استخدام التابع 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‎ عدد بتات قيمة العدد الذي استُدعي معه.

مصادر