نظرة عامة
UInt8 أو UInt16 أو UInt32 أو UInt64 أو Int8 أو Int16 أو Int32 أو Int64 أو Float32 أو Float64.
قبل تنفيذ العملية، يُحوَّل كلا المعاملين إلى نوع النتيجة. ويُحدَّد نوع النتيجة على النحو التالي (ما لم يُذكر
خلاف ذلك في توثيق الدالة أدناه):
- إذا كان عرض كلا المعاملين لا يتجاوز 32 بت، فسيكون حجم نوع النتيجة هو حجم النوع الأكبر التالي بعد أكبر
المعاملين (ترقية حجم الأعداد الصحيحة). على سبيل المثال،
UInt8 + UInt16 = UInt32أوFloat32 * Float32 = Float64. - إذا كان أحد المعاملين بعرض 64 بت أو أكثر، فسيكون حجم نوع النتيجة مساوياً لحجم أكبر
المعاملين. على سبيل المثال،
UInt32 + UInt128 = UInt128أوFloat32 * Float64 = Float64. - إذا كان أحد المعاملين موقَّعاً، فسيكون نوع النتيجة موقَّعاً أيضاً، وإلا فسيكون غير موقَّع. على سبيل المثال،
UInt32 * Int32 = Int64أوUInt32 * UInt32 = UInt64.
abs
x. ولا يكون لها أي تأثير إذا كان x من نوع غير موقَّع. أما إذا كان x من نوع موقَّع، فإنها تُرجع عددًا غير موقَّع.
البنية
x— القيمة المطلقة المطلوب حسابها لـx
x
أمثلة
مثال للاستخدام
Query
Response
avg2
x1, x2]— يقبل قيمتين لحساب المتوسط.
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
byteSwap
- حوِّل العدد الصحيح ذي الأساس 10 إلى ما يقابله بالتنسيق السداسي العشري وبترتيب big-endian، أي 3351772109 -> C7 C7 FB CD (4 بايتات)
- اعكس البايتات، أي C7 C7 FB CD -> CD FB C7 C7
- حوِّل النتيجة مرة أخرى إلى عدد صحيح بافتراض ترتيب big-endian، أي CD FB C7 C7 -> 3455829959 من حالات استخدام هذه الدالة عكس عناوين IPv4:
x— قيمة عدد صحيح.(U)Int*
x بعد عكس ترتيب البايتات. (U)Int*
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
divide
a وb. ويكون نوع النتيجة دائمًا Float64.
وتوفّر الدالة intDiv القسمة الصحيحة.
تؤدي القسمة على
0 إلى إرجاع inf أو -inf أو nan.x— المقسوم -y— المقسوم عليه
Query
Response
Query
Response
divideDecimal
result_scale (عدد صحيح ثابت ضمن النطاق [0, 76]). وإذا لم يُحدَّد، فسيكون مقياس النتيجة هو أكبر مقياس بين الوسيطات المُعطاة.
تعمل هذه الدالة بسرعة أبطأ بكثير من
divide الاعتيادية.
إذا لم تكن بحاجة فعلًا إلى دقة مضبوطة و/أو كنت تحتاج إلى حساب سريع، ففكّر في استخدام divide.x— القيمة الأولى: Decimal. -y— القيمة الثانية: Decimal. -result_scale— مقياس النتيجة. النوع Int/UInt.
Decimal256
أمثلة
مثال 1
Query
Response
Query
Response
divideOrNull
divide، لكنها تُرجع NULL عند القسمة على صفر.
الصياغة
x— المقسوم -y— المقسوم عليه
Query
Response
gcd
x— العدد الصحيح الأول -y— العدد الصحيح الثاني
x و y.
أمثلة
مثال على الاستخدام
Query
Response
ifNotFinite
isFinite(x) ? x : y.
الصيغة
xإذا كانتxمنتهية.yإذا كانتxغير منتهية.
Query
Response
intDiv
x وy. وبعبارة أخرى،
تحسب خارج القسمة مع التقريب إلى الأسفل إلى أقرب عدد صحيح أصغر.
تكون النتيجة بنفس عرض المقسوم (المعلَمة الأولى).
يُثار استثناء عند القسمة على الصفر، أو عندما لا يقع خارج القسمة ضمن
نطاق المقسوم، أو عند قسمة أصغر عدد سالب ممكن على سالب واحد.
الصياغة
x— المعامل الأيسر. -y— المعامل الأيمن.
x على y
أمثلة
القسمة الصحيحة لعددين من النوع Float
Query
Response
Query
Response
intDivOrNull
intDiv، لكنها تُرجع NULL عند القسمة على صفر أو عند قسمة
أصغر عدد سالب على سالب واحد.
الصياغة
x و y، أو NULL.
أمثلة
القسمة الصحيحة على الصفر
Query
Response
Query
Response
intDivOrZero
intDiv، لكنها تُرجِع صفرًا عند القسمة على صفر أو عند قسمة
أصغر عدد صحيح سالب ممكن على سالب واحد.
البنية
a وb، أو صفر.
أمثلة
القسمة الصحيحة على صفر
Query
Response
Query
Response
isFinite
1 إذا كانت الوسيطة من النوع Float32 أو Float64 أو BFloat16 غير لانهائية وليست NaN،
وإلا فستُرجع هذه الدالة 0.
البنية
1 إذا لم تكن قيمة x غير متناهية ولم تكن NaN، وإلا فالقيمة 0.
أمثلة
اختبر ما إذا كان العدد متناهيًا
Query
Response
isInfinite
1 إذا كانت الوسيطة من النوع Float32 أو Float64 أو BFloat16 قيمةً لا نهائية، وإلا فتُعيد هذه الدالة 0.
لاحظ أن القيمة 0 تُعاد أيضًا في حالة NaN.
البنية
1 إذا كان x لا نهائيًا، وإلا 0 (بما في ذلك NaN).
أمثلة
التحقق مما إذا كان العدد لا نهائيًا
Query
Response
isNaN
1 إذا كانت الوسيطة من النوع Float32 أو Float64 أو BFloat16 تساوي NaN، وإلا فتعيد 0.
الصياغة
1 إذا كانت القيمة NaN، وإلا 0
أمثلة
مثال على الاستخدام
Query
Response
lcm
x وy.
يُثار استثناء عند القسمة على صفر أو عند قسمة أصغر عدد سالب ممكن على سالب واحد.
البنية
x وy. (U)Int*
أمثلة
مثال على الاستخدام
Query
Response
max2
x وy.
البنية
x— القيمة الأولى(U)Int8/16/32/64أوFloat*أوBFloat16أوDecimaly— القيمة الثانية(U)Int8/16/32/64أوFloat*أوBFloat16أوDecimal
x وy. Float64
أمثلة
مثال للاستخدام
Query
Response
midpoint
x1[, x2, ...]— تقبل قيمة واحدة أو عدة قيم لحساب المتوسط.
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
min2
x وy.
البنية
x— القيمة الأولى من النوع(U)Int8/16/32/64أوFloat*أوBFloat16أوDecimaly— القيمة الثانية من النوع(U)Int8/16/32/64أوFloat*أوBFloat16أوDecimal
x وy. Float64
أمثلة
مثال على الاستخدام
Query
Response
minus
a وb. تكون النتيجة دائمًا موقَّعة.
وكما في plus، يمكن طرح عدد صحيح من تاريخ أو تاريخ مع وقت.
بالإضافة إلى ذلك، يُدعَم الطرح بين قيمتَي تاريخ مع وقت، وينتج عنه الفرق الزمني بينهما.
البنية
x— المطروح منه. -y— المطروح.
Query
Response
Query
Response
modulo
mod
الوسائط
a— المقسوم -b— المقسوم عليه (الموديولس)
Query
Response
moduloLegacy
modulo الذي يستخدم العامل % في C++، وقد يُنتج نتائج سالبة عند استخدام وسيطات سالبة. وُجدت هذه الدالة للحفاظ على التوافق مع الإصدارات السابقة لمنطق تقسيم الجدول القديم. استخدم modulo أو positiveModulo للحصول على السلوك القياسي.
الصياغة
(U)Int* أو Float*
أمثلة
الاستخدام الأساسي
Query
Response
moduloOrNull
a على b. وهو مشابه للدالة modulo، إلا أن moduloOrNull تُرجع NULL
عندما تؤدي العملية، لولا ذلك، إلى حدوث استثناء فاصلة عائمة. وبالنسبة إلى معاملات الفاصلة العائمة، لا يحدث هذا إلا عندما يكون
المقسوم عليه 0؛ أما بالنسبة إلى المعاملات الصحيحة، فيشمل ذلك أيضاً باقي قسمة أصغر قيمة سالبة على -1 (مثل -128 % -1 في Int8).
البنية
modOrNull
الوسيطات
القيمة المُعادة
تعيد ناتج باقي قسمة x على y، أو NULL عندما تؤدي العملية إلى حدوث استثناء فاصلة عائمة:
عندما يكون المقسوم عليه صفراً، أو، بالنسبة إلى الوسيطات الصحيحة، عند حساب أصغر قيمة سالبة بتطبيق modulo على -1.
أمثلة
moduloOrNull عندما يكون المقسوم عليه صفراً
Query
Response
Query
Response
moduloOrZero
a % b، أو 0 إذا كان المقسوم عليه 0.
أمثلة
مثال على الاستخدام
Query
Response
multiply
x وy.
الصيغة
Query
Response
multiplyDecimal
result_scale (عدد صحيح ثابت ضمن النطاق [0, 76]). وإذا لم يُحدَّد، فسيكون مقياس النتيجة هو أكبر مقياس بين الوسيطات المُعطاة.
تعمل هذه الدوال أبطأ بكثير من
multiply العادية.
إذا لم تكن بحاجة فعلًا إلى دقة مضبوطة و/أو كنت تحتاج إلى حسابات سريعة، ففكّر في استخدام multiplya— القيمة الأولى.Decimalb— القيمة الثانية.Decimalresult_scale— عدد المنازل العشرية في النتيجة.(U)Int*
Decimal256
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
negate
x. وتكون النتيجة دائمًا من نوع موقَّع.
الصيغة
x— القيمة المطلوب عكس إشارتها.
-x عند إدخال x
أمثلة
مثال على الاستخدام
Query
Response
plus
x وy. الاسم البديل: x + y (المعامل).
يمكن أيضًا جمع عدد صحيح مع تاريخ أو تاريخ مع وقت. تزيد العملية الأولى
عدد الأيام في التاريخ، بينما تزيد العملية الثانية
عدد الثواني في التاريخ مع الوقت.
ويمكن أيضًا جمع تاريخ ووقت. تؤدي إضافة Date وTime
إلى إنتاج DateTime. كما تؤدي إضافة Date وTime64، أو Date32 و
Time أو Time64، إلى إنتاج DateTime64.
الصياغة
x— المعامل في الطرف الأيسر. -y— المعامل في الطرف الأيمن.
Query
Response
Query
Response
Query
Response
positiveModulo
x على y. وهي مشابهة للدالة
modulo، إلا أن positiveModulo تعيد دائمًا عددًا غير سالب.
الصيغة
positive_modulo, pmod
الوسيطات
القيمة المُعادة
تعيد الفرق بين x وأكبر عدد صحيح لا يتجاوز
x ويقبل القسمة على y.
أمثلة
مثال على الاستخدام
Query
Response
positiveModuloOrNull
a على b. وهي مشابهة للدالة positiveModulo، باستثناء أن positiveModuloOrNull تُرجِع NULL
عندما كانت العملية ستؤدي، لولا ذلك، إلى استثناء فاصلة عائمة. وبالنسبة إلى الوسائط ذات الفاصلة العائمة، لا يحدث هذا إلا عندما
يكون المقسوم عليه 0؛ أما بالنسبة إلى الوسائط الصحيحة، فإنه يشمل أيضاً القيمة السالبة الدنيا modulo -1 (مثل -128 % -1 بالنسبة إلى Int8).
البنية
positive_modulo_or_null, pmodOrNull
الوسيطات
x— المقسوم.(U)Int*/Float32/64. -x— المقسوم عليه (الموديولس).(U)Int*/Float32/64.
x وأقرب عدد صحيح لا يزيد عن
x ويقبل القسمة على y، أو NULL إذا كانت العملية ستؤدي إلى استثناء فاصلة عائمة: عندما يكون المقسوم عليه صفراً، أو،
بالنسبة إلى الوسائط الصحيحة، عند حساب أصغر قيمة سالبة بترديد -1.
أمثلة
positiveModuloOrNull على الصفر
Query
Response
Query
Response
sqr
x.
البنية
x في نفسه.
أمثلة
تربيع عدد
Query
Response