السلام عليكم
بدون مقدمات ..
- هل هناك دالة في السي++ تحول dec إلى hex !؟
- بينما كنت أقرأ بعض الكتب البرمجة إذْ رأيت هذا المثال :
int n = (-5,34);
كيف يمكننا إسناد قيمتين إلى متغير واحد في نفس الوقت !؟
بالتوفيق.
السلام عليكم
بدون مقدمات ..
int n = (-5,34);
كيف يمكننا إسناد قيمتين إلى متغير واحد في نفس الوقت !؟
بالتوفيق.
khaled_prg كتب:
- هل هناك دالة في السي++ تحول dec إلى hex !؟
لا أعرف دالة و لکن إصنعها أنت نفسک هکذا:
number=100; hex(cout); cout<<number;
أو هکذا:
number=100; cout<<hex<<number;
تم تعديل هذه المشاركة بواسطة u77431 في 20 نوفمبر 2010 في 15:28
مرحبا أخي u77431 :)
الدالة hex الموجودة في لغة السي++ تقوم بإظهار العدد على هيئة السداسي عشر, لاحظ أن الدالة تُظهر و لا تُحول .. أنا أريد دالة تحول المتغير من النظام العشري إلى السداسي عشر و تكون مُعرفة مُسبقا .. عندي دالة تحول الـ dec إلى الـ hex و لكن أريد دالة موجودة أصلا في اللغة.
بقي السؤال الثاني.
بالتوفيق.
وضّح ماذا تريد ، ما تريد تحويله عبارة عن ماذا والى ماذا (int/string) ؟
بحثتُ تقریبا أحد أو إثنی ساعات ولکن ما وجدت دالة موجودة أصلا فی اللغة. أظن لیست موجودة.
علینا إستخدام hex,dec مع cin or cout أو إستخدام دالة لتحویل الیدوی.
والله أعلم.
>)
تم تعديل هذه المشاركة بواسطة u77431 في 20 نوفمبر 2010 في 18:04
السلام عليكم ...
ما الفرق بين اظهار الرقم بصورته السداسي عشرية وبين تحويله إلى صورته السداسي عشرية!
تحويل الارقام من صورة إلى أخرى داءما ما يكون ظاهريا لتسهيل قراءة المستخدم له، أما أصله وجوهره فهو رقم ثناءي من الواحدات والاصفار فقط.
أم أنك تقصد أن الرقم يتم تحويله إلى الهيكس كسلسلة نصية بحيث لا يعرف حتى الحاسوب أنه رقم معين. ! ويتعامل معه كنص!
" إن الله كتب الإحسان على كل شيء"
::
الإرادة ... تحقق السيادة.
A.S Hack
+1
لا يوجد نوع hex اصلا فى السى بعكس وجود الdecimal الذى يعتبر عنة int .
يمكنك بمشتقتات printf ان تخرج الجملة فى array(like char array) او file او اى stream . (اظن الحال مشابة مع cin/cout )
ويمكنك عمل دالتك التى تحول من int الى data type عرفتها بنفسك (فلنتفرض انك تريد التعبير عن الhex فى شكل string )
اتضح لي السؤال الأول :), حان دور السؤال الثاني :
اقتباسبينما كنت أقرأ بعض الكتب البرمجة إذْ رأيت هذا المثال :int n = (-5,34);كيف يمكننا إسناد قيمتين إلى متغير واحد في نفس الوقت !؟
اقتباسكيف يمكننا إسناد قيمتين إلى متغير واحد في نفس الوقت !؟
لا يوجد إرجاع لقيمتين هنا. ما يتم إرجاعه هو 34, هذا من أساسيات اللغة. المعامل comma يعيد "آخر" معامل.
اقتباسلا يوجد إرجاع لقيمتين هنا. ما يتم إرجاعه هو 34, هذا من أساسيات اللغة. المعامل comma يعيد "آخر" معامل.
int n = (-5,34); Or int n = 34;
بانتظارك :)
تم تعديل هذه المشاركة بواسطة khaled_prg في 20 نوفمبر 2010 في 22:53
khaled_prg كتب:
- ما هو المعامل comma !؟
- مالفرق بين الكتابتين :
int n = (-5,34); Or int n = 34;
- إذا كنا نعلم أنه سيتم أخذ آخر عدد موجود بين القوسين فمالفائدة من كتابة متسلسلة من الأعداد سيتم اختيار آخرها فقط !؟
بانتظارك :)
هذا هو من comma .یعنی مقدار الآخر هو مقدار النهائی.
اقتباسA comma expression is a series of expressions separated by commas. The expressions are evaluated from left to right. The result of a comma expression is the value of the rightmost expression. The result is an lvalue if the rightmost operand is an lvalue
و لکن لا فائدة له فی هذا المثال و له فوائد أخری.
و لیس فرق بین تلک الکتابتین
تم تعديل هذه المشاركة بواسطة u77431 في 20 نوفمبر 2010 في 23:47
شكرا أخي u77431 :)
أرجو ترجمة هذه الفقرة :
A comma expression is a series of expressions separated by commas. The expressions are evaluated from left to right. The result of
a comma expression is the value of the rightmost expression. The result is an lvalue if the rightmost operand is an lvalue
ترجمة جوجل لم تكن دقيقية !
اقتباسو لکن لا فائدة له فی هذا المثال و له فوائد أخری.
مثل ماذا !؟
اقتباسو لیس فرق بین تلک الکتابتین
ما دليلك !؟
تم تعديل هذه المشاركة بواسطة khaled_prg في 21 نوفمبر 2010 في 00:15
khaled_prg كتب:شكرا أخي u77431 :)
أرجو ترجمة هذه الفقرة :
A comma expression is a series of expressions separated by commas. The expressions are evaluated from left to right. The result of
a comma expression is the value of the rightmost expression. The result is an lvalue if the rightmost operand is an lvalue
ترجمة جوجل لم تكن دقيقية !
مثل ماذا !؟
ما دليلك !؟
آسف، نسیت أنت تعلم الفرنسیة.
و ترجمة جوجل هو أفضل من ترجمتی :) لأن لیس الإنجلیزیه و العربیة ، اللغتی الأصلیة.
ولکن مع هذا، معنی تلک الفقرة هو "العبارة کاما هو مجموعة من العبارات فٌصل مع کاما و هو من الیسار إلی الیمین و عبارة الذی هو فی أقصی الیمین هو نتیجة النهائیة..." أو کما هو.
اقتباسمثل ماذا !؟
فی تلک المثال هو زائد و لکن نقدر إستعمال comma هکذا:
for(int i = 0;i != ivec.size(); ++i, --cnt)
{
ivec = cnt;
}جربهما! سنری لیس فرق بینهمااقتباسما دليلك !؟
تم تعديل هذه المشاركة بواسطة u77431 في 21 نوفمبر 2010 في 00:56
لم أفهم الـ comma بعد ! :blush:
أين استخدام الـ comma هنا ؟ :
for(int i = 0;i != ivec.size(); ++i, --cnt)
{
ivec = cnt;
}khaled_prg كتب:لم أفهم الـ comma بعد ! :blush:
أين استخدام الـ comma هنا ؟ :
for(int i = 0;i != ivec.size(); ++i, --cnt) { ivec = cnt; }
هنا :
اقتباسfor(int i = 0;i != ivec.size(); ++i, --cnt)
قل لی ما المشکل؟
أی مشکلة أنا فی خدمة
تم تعديل هذه المشاركة بواسطة u77431 في 21 نوفمبر 2010 في 02:17
اقتباسقل لی ما المشکل ؟
كنت أظن أن ++i هي زيادة بعدية للمتغير i و --cnt هي زيادة قبلية للمتغير cnt :), ما دخل الـ comma هنا !؟ :happy:
اقتباسأی مشکلة أنا فی خدمة
تسلم حبيبي :wub:
khaled_prg كتب:كنت أظن أن ++i هي زيادة بعدية للمتغير i و --cnt هي زيادة قبلية للمتغير cnt :), ما دخل الـ comma هنا !؟ :happy:
تسلم حبيبي :wub:
الـ comma في مثال اخي u77431
فآئدتها .. انا الـ --cnt يأتي بعد زيآده الـ i++
في الـ for loop
for ( ما يتم عمله في اخر اللوب ; شرط التوقف ; ما يتم انشآءه او اسنآده في اول اللوب)
اما ترجمه الجمله السآبقه
فـهي ..:
الـ comma توضع لمجموعه معاملآت يتم فصلها بـ العلآمه ( , ) اخر معامل هو الـ قيمه النهآئيه للمسند اليه
مثلآ مثآلك انت السآبقه ..
int (-5,34);
اولآ يسند -5 ثم 34 لا اعلم ما الحكمه من وضع المبرمج لهذه العبآره !!
مثآل اخر في استخدام الـ comma ( الفآصله )
هكذآ
int i = 5 , z=3 , j = 5 ;
جميع المتغيرات هذه من نوع int
فصلنا بين متغير ومتغير بـ comma (, ) فقط َ
اتمنى وصلت الفكرهَ :)
تم تعديل هذه المشاركة بواسطة Don DaVinci في 22 نوفمبر 2010 في 21:32
اكيد في دالة في السي بلس بلس تحول من decimal to hexadecimal او التحويل من decimal to binary او التحويل من الي اي صيغه اخرى مثل octal او غيره
الدالة هي
itoa(x,y,z); //x is the decimal number integer
y is a string a saves the value in it
z is the base
the base of the hexa is 16...for binary is 2...for octal is 8
اسهل طريقة عشان تحول بدون اي تعقيدات
وهي الموقع للتأكيد
http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/
ان شاء الله اكون ساعدتك
أشكركم على الشرح الوافي :)
دمتم في حفظ الرحمن.