الموضوع السابق   الموضوع التالي 

تحويل الأعداد

Function: HexaDigitToBinary
Function: BinaryToHexaDigit
Procedure: SplitByte
Function: RotateByteLeft
Function: RotateByteRight
Function: IntToBinary

الغرض
معالجة الأرقام الثنائية و الستعشرية و البايتات.


الصيغة

function HexaDigitToBinary(HexaDigit: Char): string;


الوسائط (Parameters)

HexaDigit رقم ستعشري (Hexadecimal). الرموز المقبولة هي الأرقام من 0 إلى 9 و الحروف الإنجليزية من A إلى F (صغيرة أو كبيرة).

الشرح
تعيد هذه الدالة التمثيل الثنائي للرقم الستعشري المحدد في البارامتر HexaDigit. القيمة المعادة عبارة عن نص (string) في أربع خانات. مثلاً الرقم '9' يعيد '1001'، و الرقم 'F' يعيد '1111'. أي رمز لا يدخل في النطاق المحدد أعلاه يعيد صفراً (0000).


الصيغة

function BinaryToHexaDigit(ABinary: string): string;


الوسائط (Parameters)

ABinary رقم ثنائي (Binary) في شكل نص (string) تتراوح قيمته بين الصفر ('0000') و 15 ('1111'). الأصفار على اليسار يمكن إهمالها، مثلاً الرقم 2 يمكن تمريره هكذا ('10') بدلاً من هكذا ('0010').

الشرح
تعيد هذه الدالة التمثيل الستعشري (Hexadecimal) للرقم الثنائي المحدد في البارامتر ABinary. القيمة المعادة عبارة عن نص (string) ذي خانة واحدة. مثلاً الرقم الثنائي '1001' يعيد '9'، و الرقم الثنائي '1111' يعيد 'F'. أي نص لا يدخل في النطاق المحدد أعلاه يعيد صفراً (0).


الصيغة

procedure SplitByte(AByte: Byte; var LowPart, HighPart: Char);


الوسائط (Parameters)

AByte البايت المراد تفكيكها إلى جزأين.
LowPart بارامتر متغير (var) حيث سيوضع التمثيل الستعشري للجزء الأدنى من البايت.
HighPart بارامتر متغير (var) حيث سيوضع التمثيل الستعشري للجزء الأعلى من البايت.

الشرح
نعرف أن التمثيل الستعشري للبايت يتكون من خانتين، و تتراوح قيمتها بين $00 = 0 و $FF = 255. هذا الإجراء يقوم بفصل الخانتين عن بعضهما و يضع الخانة الأدنى (الرقم الأيمن) في البارامتر LowPart و يضع الخانة الأعلى (الرقم الأيسر) في البارامتر HighPart.


الصيغة

function RotateByteLeft(AByte: Byte; Bits: Integer): Byte;


الوسائط (Parameters)

AByte البايت المراد تدويرها.
Bits مقدار التدوير بالبت. ينبغي أن يكون بين الصفر و 7. انظر الشرح أدناه.

الشرح
تقوم هذه الدالة بتدوير بايت إلى اليسار بعدد من البتات محدد في البارامتر Bits. المقصود بالتدوير إلى اليسار هو إزالة العدد المحدد من البتات من يسار البايت و إدخال تلك البتات من يمين البايت. الدالة تضمن تلقائياً أن مقدار التدوير لن يتجاوز 7 بتات و ذلك باستعمال الباقي من القسمة على 8، فمثلاً التعبير RotateByteLeft(MyByte, 12); مكافئ للتعبير RotateByteLeft(MyByte, 4); لأن 12 mod 8 = 4


الصيغة

function RotateByteRight(AByte: Byte; Bits: Integer): Byte;


الوسائط (Parameters)

AByte البايت المراد تدويرها.
Bits مقدار التدوير بالبت. ينبغي أن يكون بين الصفر و 7. انظر الشرح أدناه.

الشرح
تقوم هذه الدالة بتدوير بايت إلى اليمين بعدد من البتات محدد في البارامتر Bits. المقصود بالتدوير إلى اليمين هو إزالة العدد المحدد من البتات من يمين البايت و إدخال تلك البتات من يسار البايت. الدالة تضمن تلقائياً أن مقدار التدوير لن يتجاوز 7 بتات و ذلك باستعمال الباقي من القسمة على 8، فمثلاً التعبير RotateByteRight(MyByte, 12); مكافئ للتعبير RotateByteRight(MyByte, 4); لأن 12 mod 8 = 4


الصيغة

function IntToBinary(AValue: Integer; FullBytes: Boolean = True): string;


الوسائط (Parameters)

AValue العدد الصحيح المطلوب الحصول على مكافئه الثنائي.
FullBytes يحدد ما إذا سيكون الناتج مكوناً من بايتات كاملة (عدد الخانات الثنائية من مضاعفات العدد 8) أم لا.

الشرح
تقوم هذه الدالة بإعادة نص (string) يمثل الشكل الثنائي للعدد المحدد في البارامتر AValue. إذا كانت قيمة البارامتر FullBytes هي True فإن القيمة المعادة تتكون من بايتات كاملة (يمكن تقسيمها إلى مجموعات من 8 خانات).


 أعلى الصفحة
 الموضوع السابق   الموضوع التالي