|
مفاهيم حافظه و انواع
داده ای
|
همانطور که در سازمان کامپيوتر گفتيم يکی
از واحدهای کامپيوتر، واحد حافظه می باشد.
اين واحد که به آن
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 چهار نوع داده اصلی وجود
دارد که عبارتند از :
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) |
|