أريد أن أستفسر لماذا لا يوجد تعريف unsigned في لغة الجافا
وإذا كان الــ unsigned لا فائد منه فلماذا وجدت method تسمى readUnsignedByte
وشكراً
أريد أن أستفسر لماذا لا يوجد تعريف unsigned في لغة الجافا
وإذا كان الــ unsigned لا فائد منه فلماذا وجدت method تسمى readUnsignedByte
وشكراً
ربما تكون الإجابة غريبة...
فلسفة مصمم الجافا كانت تقتضي أن تكون اللغة سهلة قدر الإمكان. وكان يرى أن استعمال unsigned في (سي) أو غيرها غير مفهومة لدى الكثيرين. وأن استعمالها غير وارد. وبالفعل كانت الجافا من أسهل اللغات لخلوها من الزوايا الغريبة التي قد توجد في لغات أخرى.
أذكر أني قرأت فلسفة المصمم قديما،، حاول البحث،، وستجد أن هذا مثال لما سماه من التعقيدات.
وأما سؤالك الثاني،، فهذه طريقة لقراءة unsigned byte من الشبكة مثلا أو ملف وتحويلها إلى لغة الجافا لتكون singed في النهاية. ليس المقصود أن unsigned لا قائدة لها، ولكن إذا أردت أن تقرأ معلومات من الشبكة مثلا، قد تحتاج إلى تحويل هذه bytes إلى singed إذا أرسلت من مصدر يرسل unsigned.
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
زيادة على كلام ابو مازن وان مصممين الجافا شافوا إنها غير ضروريه
unsigned حقيقة ماشفت لها استخدام الى الآن
اذا تبي تحول بايت من unsigned إلى signed اضف له 0xff واعمل كاست له
0xff لأن طول int في الجافا هو 32
طول الlong في لغة السي 32 بينما طوله في الجافا 64
أنا رأيي إن unsigned يزيد من المرونة في اللغة وقد يزيدها تعقيد وقد يكون تركه تعيقد بحد ذاته
كيف ؟
الآن لو عندك ملف مصلح له ecoding ب cp1256 وهو encoding خاص بالويندوز ويدعم العربي والإنجليزي وكلها في بايت واحد
و معروف إن الحروف العربية ترميزها فوق 128 فمثلاً حرف ف ترميزه 221 فلو قريت byte من الملف وأردت التعامل معه فسوف تتعامل مع رقم سالب هو 35- تقريباً
طيب يجي حل بسيط وهو إن نخزنه في short أكبر منه ويشيل قيمه مثل 221 بس هنا تجي المشكلة ؟ وما يكتشفها
الواحد الإ يكون محترف أو صلح debug ولف ودار أما المبتدئيين بيوقفون مستغربيين
وهي عند الترقية من byte إلى short يعتبر هذا البايت من النوع السالب فيكون البايت الثاني في short كله يحتوي على 0xff والحل إن تصلح له clear عن طريق and
وش رايكم مو شغله مقعدة أكثر من تعريف unsigned
همممم...
لا أدري ،، لكن عندما نقرأ من ملف فعليك أن تحدد التشفير المناسب.
يعني مثلا..
new String (byteMessageFromFile, "ascii");
طبعا غير التشفير كما تريد!
وتنتهي القصة!
ولا أدعي علما في هذا الجانب!
بالتوفيق!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
اخواني الجافا تمثل char على انه 16 bit
يعني unicode دائماً !!
أعرف أنه تقدر تحدد تشفير الملف بالجافا
وتريح مخك وهذه ميزة تحسب للجافا
لكن المشكلة إن المشروع يتطلب إنك ما تستخدم أي مكتبة أو دالة أو كائن جاهز
فقط لا غير
يعني في حالة ISO و cp1256 راح تقرأ بايت بايت أما في حالة Unicode راح تقرأ بايتين بايتين
أما في حالة utf8 فالوضع هنا مختلف
أرجو إن الفكرة وصلت
هل هذا مشروع أم واجب منزلي؟
عموما،، إذا كنت لن تستخدم أي حزمة جاهزة،، فإن جافا أسوأ اختيار لعمل مثل هذا المشروع!
أنصح بلغة سي.
بالتوفيق!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
حسام الملحم أبومازن كتب:هل هذا مشروع أم واجب منزلي؟
لا أصغر من الواجب بعد :D
بس حنا نسمي أي شئ يطلبه الدكتور مشروع :P
عموما والله صدقت في هذه لكن قلت أنا أبي أجرب java فقط لا غير
وإستغربت من unsigned وقلت لازم أستفسر وعرفت لماذا لم يوجد
وجزاكم الله خير
تم تعديل هذه المشاركة بواسطة b.m.s في 7 أكتوبر 2006 في 16:28
هذا الموضوع مغلق.