تسجيل الدخول

مشاهدة النسخة كاملة : please help me



abed_11
14-04-2005, 08:43 PM
alsalam alyakom,i wanna ask any body who knows how to convert

character such as"h" into
binary code
1101000
please send it to abedzaben198@hotmail.com
and make sure that it is as simple as possible

ibn_alqalam
15-04-2005, 02:53 AM
عند لغة سي, الحروف ماهي الا نوع ارقام صحيحة من حجم بايت واحدة. كل بتة اما صفر او واحد. اذا تريد ترجمة حرف الى بتات, تختبر اعلى بتة و ترى اذا ما كانت واحدة او صفر. اذا كانت و احد فتكتب واحد, واذا صفر تكتب صفر. و لكن لغة سي لا تسمح لك باختبار بتة واحدة فقط, لازم تختبر البايت كلها. نستخدم اداة المنطق AND ونختبر اعلى بتة فقط.

AND تقارن بايتتان و تجيب بواحد اذا كانت كل بتة في موضع ما من نفس القيمة, او صفر اذا تختلفان. نحن نريد ان نختبر اعلى بتة فقط, فنقارن الحرف ب 1000,0000

الان بعد ما نختبر اعلى بتة و نطبع قيمتها, نستخدم اداة ادارة البتات و نحولها محل واحد الى اليسار و نعيد الاختبار, وهكذا حتى نطبع كل البتات الثماني.

يمكنك تغيير كميات اكثر من بتة واحدة اذا اكثرت عدد مرات التكرر من ثمانية الى ستة عشر او اثنان و ثلاثين, مثلا, و غير قيمة الاختبار, الخ.





int main ()
{
char alphabet [] = "abcdefghijklmnopqrstuvwxyz";

int i, j;
char letter;

for (i = 0; i < 26; i++) {
letter = alphabet[i];

printf ("%c %x ", letter, letter);
for (j = 0; j < 8; j++) {
if (letter & 0x80) // 0x80 means 1000,0000 in binary
printf ("1");
else
printf ("0");

letter = letter << 1;
}

printf ("\n");
}

}



اذا تعرف تبرمج اّسمبلي, هذا التمرين في منتهى البساطة, لان اسمبلي تمكنك من اختبار حالة المسجلات, خاصة مسجل النتيجة, flags register. بعد دوران البتات, يحتفظ مسجل النتيجة باعلى بتة, وبدلا من اختبار بايتتين معا, فقط تسالة عن محتويات ال carry flag.

اسف عزيزي اذا كنت اخترع الاسامي و الالفاظ, انا لم ادرس بالعربية, للاسف.

abed_11
19-04-2005, 05:02 PM
thank you very much

malikmalik
19-04-2005, 05:23 PM
شكراً لك يا إبن القلم وهذا فخر لنا في قسمنا وجودك :biggthump