itoah(0xFF,txt);
itoah(0x123,txt);
itoah(0x3A05,txt);
itoah(0xBBCCDDAA,txt);
itoah(0xBAADABD0,txt);
itoah(0x00413,txt);
itoah(0x0,txt);
int hexDigitsCount = val ? 8 : 1;
ما فائدته بالتحديد ( لا اتكلم على المعامل ? بل عن الدور الذي يؤديه في بقية الكود). while (val && !(val & 0xF0000000))
{
val *= 16;
hexDigitsCount--;
}
لم افهم دوره على الاطلاق.وفي 19 سبتمبر 2009 03:38 م، قال ياسر أبوبكر متحمساً:
المهم ... الشيء الذي حيرني هو الرقم السحري 268435456 لماذا تمت القسمة على هذا الرقم بالذات؟أما في 20 أيلول 2009 01:22 ص، فقد تنهد انس بارتياح وهو يرد:
int hexDigitsCount = val ? 8 : 1;
ما فائدته بالتحديد ( لا اتكلم على المعامل ? بل عن الدور الذي يؤديه في بقية الكود).في 20 أيلول 2009 01:22 ص، غمغم انس باستغراب قائلاً:
while (val && !(val & 0xF0000000))
{
val *= 16;
hexDigitsCount--;
}
لم افهم دوره على الاطلاق.بتاريخ 19 أيلول 2009 05:38 م، قطب ياسر أبوبكر حاجبيه بشدة وهو يقول:
المهم ... الشيء الذي حيرني هو الرقم السحري 268435456 لماذا تمت القسمة على هذا الرقم بالذاتوفي 19 أيلول 2009 05:38 م، أعرب ياسر أبوبكر عن رأيه بالموقف كالآتي:
ؤلاحظت وجود عمليات الضرب والقسمة والتي برأيي تزيد من زمن حساب الناتج...في 20 سبتمبر 2009 08:30 ص، غمغم عبد اللطيف حاجي علي باستغراب قائلاً:
الفائدة من هذا السطر والحلقة التي تليه هو تحديد عدد محارف التمثيل الست العشري للرقم. وهو يبداً بذلك بفرضها 8 (أو رقماً واحد في حال كان الرقم صفراً)بتاريخ 20 سبتمبر 2009 08:30 ص، قطب عبد اللطيف حاجي علي حاجبيه بشدة وهو يقول:
كما يقوم بترقية العدد أربع منازل (بالثنائي)وفي 20 سبتمبر 2009 08:30 ص، أعرب عبد اللطيف حاجي علي عن رأيه بالموقف كالآتي:
هذا العدد هو 0x10000000 بالنظام الست عشري وبالتالي فهذه العملية مكافئة إلى إزاحة نحو اليمين بمقدار 28 بت.في 20 سبتمبر 2009 08:30 ص، قال عبد اللطيف حاجي علي بهدوء وتؤدة:
ملاحظة: يبدو أن معظم المشاركات (عدا مشاركتي ومشاركة وسام على حسب ما أرى) قد وقعت في خطأ الصفر. حيث تحويل هذا العدد لا يعيد أي نص في معظم المشاركات.بتاريخ 20 أيلول 2009 01:19 م، قطب انس حاجبيه بشدة وهو يقول:
اذا فهمت قصدك، برنامج الاستاذ وسام لايظهر سوى سلسلة من 8 حروف ؟وفي 20 أيلول 2009 01:19 م، أعرب انس عن رأيه بالموقف كالآتي:
هذا العدد هو 0x10000000 بالنظام الست عشري وبالتالي فهذه العملية مكافئة إلى إزاحة نحو اليمين بمقدار 28 بت.و ما الفائدة من هذه العملية ؟في 20 أيلول 2009 01:19 م، قال انس بهدوء وتؤدة:
لم استوعب جيدا هذه النقطة، من فضلك هلا شرحتها لي بمثال ؟ ( لم افهم سبب الترقية بالعدد 4^2 ).في 20 أيلول 2009 01:19 م، عقد انس حاجبيه بتفكير وقال:
اظن ان مشاركتي ترسل نصا، ام انني لم افهم قصدكوفي 20 سبتمبر 2009 12:44 م، أعرب عبد اللطيف حاجي علي عن رأيه بالموقف كالآتي:
دعني أسألك. إذا أردت الحصول على العدد 9 من العدد 0x9A52234F فما الذي تفعله؟في 20 سبتمبر 2009 12:44 م، قال عبد اللطيف حاجي علي بهدوء وتؤدة:
كتكملة للسؤال السابق. ماذا لو أردت الحصول على بقية الأعداد من 0x9A52234F؟ أي نريد الحصول على العدد 9 ثم A (10) ثم 5 ثم 2 وهكذا...( ( 0x9A52234F >> (4xp) ) ) << 28 )
و ما زلت لا اعلم سبب استعمال العدد 28 🙁 .في 20 سبتمبر 2009 12:44 م، عقد عبد اللطيف حاجي علي حاجبيه بتفكير وقال:
لي عدة ملاحظات عليها0x9A52234F >> 4 = 0x09A52234
0x09A52234 >> 4 = 0x009A5223
.
.
.
0x9A52234F >> 28 = 0x00000009
// الرمز الأول
0x9A52234F >> 28 = 0x00000009
// الرمز الثاني
0x9A52234F << 4 = 0xA52234F0
0xA52234F0 >> 28 = 0x000000A
// الرمز الثالث
0xA52234F0 << 4 = 0x52234F00
0x52234F00 >> 28 = 0x0000005
وهكذا. لاحظ أن الإزاحة نحو اليسار 4 منازل يكافئ الضرب بـ 16 ونحو اليمين 28 منزلة يكافئ القسمة على 268435456 أو 0x10000000