الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما حجم هذه القيمة 0xE3

بدأه SIFE في 18 مايو 2011 · 6 رد · 549 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله

بينما أقرأ في البروتوكول الخاص ب ED2K لاحظت أن الخاة الأولى تحتوي على هذه القيمة 0xE3 بينما يقولالتوثيق أن الخانة الأولى هي بحجم 1 byte.

قمت بحساب القيمة السابقة بإستخدام برنامج بسيط

#include<stdio.h>
main()
{
printf("%d\n", sizeof("0xE3"));
printf("%d\n", sizeof(0xE3));
return 0;
}

فكانت النتيجة التالية:

5
4

المعامل sizeof يعيد قيمة بالبايت، هنا نجد أنه أعاد 4 بايت، لماذا لم يعد 1 بايت مثل ماهو موضوع في توثيق البروتوكول.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#2

السلام عليكم ورحمة الله

موجود بالتوثيقات ايضاً

size 4 bytes (the size of the message not including this header) [Green

مو متأكدة والله أعلم

شكراً

تم تعديل هذه المشاركة بواسطة ♥ حُوريّة ♥ في 18 مايو 2011 في 23:00

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#3
SIFE كتب:

السلام عليكم و رحمة الله

بينما أقرأ في البروتوكول الخاص ب ED2K لاحظت أن الخاة الأولى تحتوي على هذه القيمة 0xE3 بينما يقولالتوثيق أن الخانة الأولى هي بحجم 1 byte.

قمت بحساب القيمة السابقة بإستخدام برنامج بسيط

#include<stdio.h>
main()
{
printf("%d\n", sizeof("0xE3"));
printf("%d\n", sizeof(0xE3));
return 0;
}

فكانت النتيجة التالية:

5
4

المعامل sizeof يعيد قيمة بالبايت، هنا نجد أنه أعاد 4 بايت، لماذا لم يعد 1 بايت مثل ماهو موضوع في توثيق البروتوكول.

لانك اعطيت المعامل sizeof قيمه constant literal والتي هي افتراضيا ستكون int او 4 بايت

جرب ان تضع القيمه في char ثم استدعي sizeof للchar وسيعطيك 1

في التوثيق عندك بيقول انه حجمه 1 بايت لانه عبارة عن عددين hexadecimal وكل عدد hexadecimal عبارة عن واحد nibble او نصف بايت

تم تعديل هذه المشاركة بواسطة mental-driller في 18 مايو 2011 في 23:44

5

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#4

@الأخت رغد

4 بايت يقصد بها حجم محتوى الرسالة من دون إحتساب إصدارة البروتوكول و لا نوع الرسالة و لا الأربع البياتات نفسها التي ستخزن فيها حجم الرسالة.

@الأخ mental

أظنني تعلمت شيئا جديدا و هو أن الهكس نصف بايت، الآن إتضح المفهوم.

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#5
mental-driller كتب:

لانك اعطيت المعامل sizeof قيمه constant literal والتي هي افتراضيا ستكون int او 4 بايت

جرب ان تضع القيمه في char ثم استدعي sizeof للchar وسيعطيك 1

في التوثيق عندك بيقول انه حجمه 1 بايت لانه عبارة عن عددين hexadecimal وكل عدد hexadecimal عبارة عن واحد nibble او نصف بايت

كانت على بالي الشغلة, ع الأقل السطر الأول

عن جد ولكن الوقت والتركيز ارتبكت شوي :blush:

شكراً لك

SIFE كتب:

@الأخت رغد

بايت يقصد بها حجم محتوى الرسالة من دون إحتساب إصدارة البروتوكول و لا نوع الرسالة و لا الأربع البياتات نفسها التي ستخزن فيها حجم الرسالة.

أخي سيف

آسفة لم أقرأ الرابط بتمعن اكتر وشو المقصود من تلك الأحجام بالضبط

موفقين يارب

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#6
اقتباس
آسفة لم أقرأ الرابط بتمعن اكتر وشو المقصود من تلك الأحجام بالضبط

كما هو معلوم أن الملفات لديها رأس و محتوى، مثلا بنية ملفات PE أو exe المستعملة في ال windows قصد تبيين خصائص الملف (نقطة الدخول، الأقسام و ما إلى ذلك)، في الشبكات و بالضبط في البروتوكولات يستعملون أيضا نفس الفكرة عند إرسال الحزم، المقصود هنا هو توضيح كل حزمة و ماهية عملها، بروتوكول edonkey2000 يستعمل هذه الخاصية أيضا، هو يحتوي على 3 خانات أساسية(في الحقيقة هي مجال بايتات) الأولى لإصدارة البروتوكول، الثانية حجم الحزمة و الثالثة الحزمة بحد ذاتها، في الأخير تكون: الحزمة = حجم الحزمة(بالبايت) + إصدارة البروتوكول(1 بايت) + خانة الحزمة (2 بايت).

لإطلاع أكثر عليه:

http://www.scribd.com/doc/2187260/The-eMule-Protocol-Specification

http://hydranode.com/docs/ed2k/ed2kproto.php

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#7

0xE3 هو عدد hexadecimal و یتساوی مع 227 فی حساب decimal.

و یمکننا تخزین اعداد من 0 إلی 255 بشکل unsigned فی بایت واحد، فلذا سنحتاج لـ 0xE3 ، بایت واحد فقط :)

مواضيع مشابهة