مفاهيم حافظه و انواع داده ای

    همانطور که در سازمان کامپيوتر گفتيم يکی از واحدهای کامپيوتر، واحد حافظه می باشد.

   اين واحد که به آن RAM ( حافظه با دسترسی تصادفی Random Access Memory) نيز می گويند، برای ذخيره موقت داده ها و دستورالعملها تا هنگامی که به آنها احتياج شود استفاده می شود. اطلاعاتی که در RAM قرار دارند قابل پاک شدن و جايگزين شدن با داده های ديگر است. فضايی که ما در برنامه نويسی برای متغيرها و داده ها استفاده می کنيم در RAM قرار دارد. برای درک بهتر مطلب ، واحدهای اندازه گيری حافظه را بررسی می کنيم:

   Bit بيت: يک بيت عنصری الکترونيکی در کامپيوتر است که دارای دو حالت روشن (1) و خاموش(0) می باشد و کوچکترين واحد اطلاعاتی است.

   Byte بايت: چون بيتها واحدهای اطلاعاتی کوچکی هستند و فقط می توانند دو حالت را انتقال دهند، بنابراين آنها را در واحدهای بزرگتری سازماندهی می کنند تا اطلاعات بيشتری هر بار قابل انتقال باشد. اين واحد بزرگتر بايت است که واحد اصلی اطلاعات در سيستمهای کامپيوتری می باشد. هر 8 بيت ، يک بايت را تشکيل می دهند.

   از واحدهای زير برای اندازه گيری حافظه استفاده می شود:

   يک کيلو بايت 1 KB = 1024 B = 210 B

   يک مگا بايت 1 MB = 1024 KB = 220 B

   يک گيگا بايت 1 GB = 1024 MB = 230 B

   ما در برنامه نويسی نياز به خانه های حافظه داريم. در تعريف خانه حافظه بايد نام و نوع اطلاعاتی که در آن قرار می گيرد معين شود.

نام متغيير      نوع داده ;
int           i1,i2,index;

   دستور فوق سه خانه حافظه با نامهای i1 وi2 وindex از نوع اعداد صحيح تعيين می کند، يعنی در هر کدام از خانه های حافظه فوق می توان يک عدد صحيح در بازه 32767 تا 32768- قرار داد. نوع داده int به دو بايت حافظه نياز دارد.

   نکته :

  •    هر دستور زبان ++C به ; ختم می شود.

  •    برای نام گذاری خانه های حافظه فقط می توان از حروف، اعداد و ... استفاده کرد و نيز حرف اول نام يک متغير بايد يک حرف باشد. به عنوان مثال نامهای 1test و test!num و mark.1 اسامی غير مجاز می باشند.

  •    بين حروف نام متغير نمی توان از کاراکتر فاصله استفاده کرد.

  •    زبان ++C دارای تعدادی کلمات کليدی است که نمی توان از اين کلمات به عنوان نام متغير استفاده کرد. کلمات کليدی زبان ++C عبارتند از:

  • asm auto break case cdecl char
    class const continue _cs default delete
    do double _ds else enum _es
    extern _export far _fastcall float for
    friend goto huge if inline int
    interrupt _loadds long near new operator
    pascal private protected public register return
    _saveregs _seg short signed sizeof _ss
    static struct switch template this typedef
    union unsigned virtual void volatile while

     

  •    زبان ++C نسبت به حروف حساس است يعنی بين حروف کوچک و بزرگ تفاوت قائل می شود. در اين زبان تمام کلمات کليدی با حروف کوچک نوشته می شوند، به عنوان مثال short يک کلمه کليدی می باشد ولی SHORT يا shoRT کلمات کليدی نيستند. توصيه می شود که تمام برنامه های اين زبان با حروف کوچک نوشته شوند.

   در زبان ++C چهار نوع داده اصلی وجود دارد که عبارتند از :

 

   1- char : اين نوع داده برای ذخيره داده های کاراکتری مانند 'a' ، '1' ، '.' به کار می رود و بازه قابل قبول آن از 128- تا 127 می باشد. در حقيقت خانه های char  نيز از نوع اعداد صحيح می باشند که يک بايت طول دارند و کد اسکی کاراکتر مورد نظر را در خود حفظ می کنند. به عنوان مثال کد اسکی کاراکتر A  عدد 65 می باشد.

   2- int : اين نوع داده برای ذخيره اعداد صحيح مانند 1300، 32000 ، 850- به کار می رود و بازه قابل قبول آن 32768- تا 32767 می باشد.

   3- float : اين نوع داده برای ذخيره اعداد اعشاری مانند 12.5241 ، 1501.3- ، 1415.1234 به کار می رود و دقت آن تا 7 رقم اعشاری می باشد.

   4- double : اين نوع داده برای ذخيره سازی اعداد اعشاری بزرگ به کار می رود و دقت آن از float بيشتر می باشد.

   باکلماتی مانند signed ( علامت دار) ، unsigned ( بدون علامت)، short (کوتاه) و long ( بلند) انواع داده های جديدی می توان ايجاد کرد. نوع int با هر چهار کلمه فوق می تواند مورد استفاده قرار گيرد. نوع char می تواند با signed و unsigned به کار رود و نوع double می تواند با long به کار رود. به جدول زير توجه کنيد:

نوع داده طول داده بازه
unsigned char 8 bits 0 to 255
char 8 bits -128 to 127
enum 16 bits -32,768 to 32,767
unsigned int 16 bits 0 to 65,535
short int 16 bits -32,768 to 32,767
int 16 bits -32,768 to 32,767
unsigned long 32 bits 0 to 4,294,967,295
long 32 bits -2,147,483,648 to 2,147,483,647
float 32 bits 3.4 * (10**-38) to 3.4 * (10**+38)
double 64 bits 1.7 * (10**-308) to 1.7 * (10**+308)
long double 80 bits 3.4 * (10**-4932) to 1.1 * (10**+4932)

 

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 

حق کپی رایت محفوظ می باشد