PDA

View Full Version : سوال در مورد كاراكتر و حجم اينها



سي شارپ عشق من
جمعه 05 تیر 1388, 10:47 صبح
سلام.
يه سوال دارم.
چرا هر كاراكتر 8 بايت از حافظه رو اشغال ميكنه؟

چرا 20 بايت رو اشغال نميكنه؟

چرا از اول كاراكتر 8 بايت اشغال كرده؟

؟
:متفکر:

Nima_NF
جمعه 05 تیر 1388, 13:50 عصر
هر کارکتر (شامل اعداد، کارکترهای محاسباتی، حروف زبان کوچک و بزرگ) شامل عددی بین 0 تا 127 هست.
پس یک char هم بیشتر از 8 بیت (1 بایت) برای ذخیره کردن این اعداد احتیاج ندارد.

در سال های اخیر با آمدن و نیاز برای نمایش و ذخیره کردن کارکترهای سایر زبان ها که تعداد کارکترهایشان بیشتر هست (مانند حروف فارسی، شما حرف چسبیده و جدا و ...) پس این نیاز افزایش یافت و در برنامه نویسی های جدید و یونیکد، کارکتر ها 16 بیت هستند نه 8 بیت.

دقت کنید که برای ذخیره کردن در حافظه به شکل نوع داده ای، باید ضریب همان 1 بایت باشد، پس اگر حتی به 12 بیت نیاز هست، نوع داده ای 2*8 یعنی 16 بیت است.

PC2st
جمعه 05 تیر 1388, 16:51 عصر
همچنین علاوه بر توضیحات جناب Nima_NF، در سیستم عامل‌هایی چون گنو/لینوکس، از UTF-8 Encoding استفاده می‌شود تا در اینصورت بتوان به کمک همان انواع char قبلی (به اندازه 8 بیت)، از کاراکترهای استاندارد Unicode استفاده کرد. در ویندوز فکر می‌کنم برای این منظور از wchar_t استفاده می‌شود.

tdkhakpur
جمعه 05 تیر 1388, 17:09 عصر
سلام
فکر کنم این دوست عزیز سوال زیر بنایی رو در مورد 8 بیت بودن کاراکترها خواسته.
سالهای پیش که کامپیوتر تحت سخت افزارهای تکمیلی مانند کمودور 64و 128 عرضه شد در همان اوقات از دستورات و آپ کدهای مخصوص که اصولا 4 بیتی بودند استفاده میشد که در کمودور 128 آن رو ارتقاع دادند .
اصولا قرار دادن 8 بیت برای یک کاراکتر از پایه و اساس cpu نشات میگیره و آن هم به دلیل استفاده در پردازش 8 بیتی کدها توسط سیستم کنترل مرکزی یا همانcpu میشود یعنی کوچکترین آپ کد یا همان دستور برای اجرا در cpu یک بایتی هست.که دستورات دو بایتی و بیشتر هم در cpu های پیشرفته امروزی به کار برده شده است.