BN_SET_BIT(3ssl)

الاسم
BN_set_bit, BN_clear_bit, BN_is_bit_set, BN_mask_bits, BN_lshift, BN_lshift1, BN_rshift, BN_rshift1 - عمليات بت على BIGNUMs

موجز
 #include <openssl/bn.h>

 int BN_set_bit(BIGNUM *a, int n);
 int BN_clear_bit(BIGNUM *a, int n);

 int BN_is_bit_set(const BIGNUM *a, int n);

 int BN_mask_bits(BIGNUM *a, int n);

 int BN_lshift(BIGNUM *r, const BIGNUM *a, int n);
 int BN_lshift1(BIGNUM *r, BIGNUM *a);

 int BN_rshift(BIGNUM *r, BIGNUM *a, int n);
 int BN_rshift1(BIGNUM *r, BIGNUM *a);

الوصف
BN_set_bit() يضبط البت n في a إلى 1 ("a|=(1<<n)"). يُوسع الرقم إذا لزم الأمر.

BN_clear_bit() يضبط البت n في a إلى 0 ("a&=~(1<<n)"). يحدث خطأ إذا كان a أقصر من n بت.

BN_is_bit_set() يختبر إذا كان البت n في a مضبوطًا.

BN_mask_bits() يقطع a إلى رقم n بت ("a&=~((~0)<<n)"). يحدث خطأ إذا كان n سالبًا. يُعاد خطأ أيضًا إذا كان التمثيل الداخلي لـ a أقصر بالفعل من n بت. يعتمد التمثيل الداخلي على حجم كلمة المنصة، ويمكن تجاهل هذا الخطأ بأمان. استخدم BN_num_bits(3) لتحديد العدد الدقيق للبتات إذا لزم الأمر.

BN_lshift() يزيح a يسارًا بمقدار n بت ويضع النتيجة في r ("r=a*2^n"). لاحظ أن n يجب أن يكون غير سالب. BN_lshift1() يزيح a يسارًا بمقدار واحد ويضع النتيجة في r ("r=2*a").

BN_rshift() يزيح a يمينًا بمقدار n بت ويضع النتيجة في r ("r=a/2^n"). لاحظ أن n يجب أن يكون غير سالب. BN_rshift1() يزيح a يمينًا بمقدار واحد ويضع النتيجة في r ("r=a/2").

بالنسبة لدوال الإزاحة، يمكن أن يكون r و a نفس المتغير.

القيم المُرجعة
BN_is_bit_set() يُرجع 1 إذا كان البت مضبوطًا، 0 خلاف ذلك.

جميع الدوال الأخرى تُرجع 1 للنجاح، 0 عند الخطأ. يمكن الحصول على رموز الخطأ بواسطة ERR_get_error(3).

انظر أيضًا
BN_num_bytes(3), BN_add(3)

حقوق النسخ
حقوق النشر 2000-2024 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.