سلام.
يه سوال دارم.
چرا هر كاراكتر 8 بايت از حافظه رو اشغال ميكنه؟
چرا 20 بايت رو اشغال نميكنه؟
چرا از اول كاراكتر 8 بايت اشغال كرده؟
؟
سلام.
يه سوال دارم.
چرا هر كاراكتر 8 بايت از حافظه رو اشغال ميكنه؟
چرا 20 بايت رو اشغال نميكنه؟
چرا از اول كاراكتر 8 بايت اشغال كرده؟
؟
هر کارکتر (شامل اعداد، کارکترهای محاسباتی، حروف زبان کوچک و بزرگ) شامل عددی بین 0 تا 127 هست.
پس یک char هم بیشتر از 8 بیت (1 بایت) برای ذخیره کردن این اعداد احتیاج ندارد.
در سال های اخیر با آمدن و نیاز برای نمایش و ذخیره کردن کارکترهای سایر زبان ها که تعداد کارکترهایشان بیشتر هست (مانند حروف فارسی، شما حرف چسبیده و جدا و ...) پس این نیاز افزایش یافت و در برنامه نویسی های جدید و یونیکد، کارکتر ها 16 بیت هستند نه 8 بیت.
دقت کنید که برای ذخیره کردن در حافظه به شکل نوع داده ای، باید ضریب همان 1 بایت باشد، پس اگر حتی به 12 بیت نیاز هست، نوع داده ای 2*8 یعنی 16 بیت است.
همچنین علاوه بر توضیحات جناب Nima_NF، در سیستم عاملهایی چون گنو/لینوکس، از UTF-8 Encoding استفاده میشود تا در اینصورت بتوان به کمک همان انواع char قبلی (به اندازه 8 بیت)، از کاراکترهای استاندارد Unicode استفاده کرد. در ویندوز فکر میکنم برای این منظور از wchar_t استفاده میشود.
آخرین ویرایش به وسیله PC2st : جمعه 05 تیر 1388 در 17:26 عصر دلیل: اشتباه در نوشتن اندازه wchar_t به بیت
سلام
فکر کنم این دوست عزیز سوال زیر بنایی رو در مورد 8 بیت بودن کاراکترها خواسته.
سالهای پیش که کامپیوتر تحت سخت افزارهای تکمیلی مانند کمودور 64و 128 عرضه شد در همان اوقات از دستورات و آپ کدهای مخصوص که اصولا 4 بیتی بودند استفاده میشد که در کمودور 128 آن رو ارتقاع دادند .
اصولا قرار دادن 8 بیت برای یک کاراکتر از پایه و اساس cpu نشات میگیره و آن هم به دلیل استفاده در پردازش 8 بیتی کدها توسط سیستم کنترل مرکزی یا همانcpu میشود یعنی کوچکترین آپ کد یا همان دستور برای اجرا در cpu یک بایتی هست.که دستورات دو بایتی و بیشتر هم در cpu های پیشرفته امروزی به کار برده شده است.