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

نتيجة لم أفهمها عند تخزين حرف Char في ملف ثنائي

بدأه hfsh80 في 12 سبتمبر 2009 · 2 رد · 404 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

إخواني الأعزاء ما أعرفه أن النوع Char يحمل حرف واحد فقط وعند تخزينه في ملف بصيغة ثنائية فإنه يستهلك 2 بايت لكن ما قصة هذا المقطع :

FileStream fs = new FileStream("Data.dat", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
char a=(char)1000;
bw.Write(a);
a=(char)3000;
bw.Write(a);
bw.Close();

التخزين الأول يستهلك 2 بايت وهو أمر طبيعي أما التخزين الثاني فهو يستهلك 3 بايت لماذا !!

بعد عدة تجارب وجدت أن الـ Char عند الرقم 2048 فما فوق تصبح 3 بايت عند تخزينها .

يبدو أن الرقم 2048 مـألوفا أليس كذلك :)

لكن لم أجد أي تفسير منطقي لما يحدث !!

لكم أجمل تحية

#2

هل جربت أن تخزن حروف(أرقام) أقل من 127!

جرب و قل لنا الحجم الذى سوف يشغله الحرف حينها

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#3

ماشاء الله عليك اخوي محمد نور :)

فعلا لما قلت القيمة عن 128 كان الحرف يشغل واحد بايت غريبه !!

هذه لم أقم بتتجربتها كنت أجرب على أرقام الحروف العربية

لكن ماتفسير كل هذا 1 بايت 2 بايت وحتى 3 بايت !!

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…