PDA

View Full Version : WORD و DWORD چیست



NIMA_1981
شنبه 12 فروردین 1391, 18:51 عصر
سلام دوستان میشه در مورد WORD و DWORD توضیح بدید

و فرقش با CHAR , STRING

vistacali
شنبه 12 فروردین 1391, 20:06 عصر
Their basis is the word size of the processor (the width of it's registers). So a 16bit processor would have a word size of 16, a 32bit -32 etc. However the meaning has been altered slightly so that a WORD is always 16bit and a DWORD(double word) is 32bit, and I assume 64bit will be QWORD. A WORD is an unsigned 16bit integer and a DWORD is an unsigned 32bit integer, so they can hold variables of these types (or types that can be converted to one of them).

Ananas
شنبه 12 فروردین 1391, 21:42 عصر
سلام.
اینها انواعی هستند که هم از نظر مقدار حافظه ای که اشغال میکنن و هم از نظر طرز استفاده تفاوت هایی دارن. در کل اول به همشون از دید یک سری از بایت ها روی رم نگاه کن. حالا نوع WORD که 16 بیت یعنی دوتا بایت پشت سر هم هست و نوع DWORD که به اصطلاح دوبل وورد هست از اسمشم پیداست که دو تا WORD کنار هم یعنی 32 بیت و یا 4 بایت پشت سر هم هست و نوع char هم یا همون کاراکتر هم 8 بیت که معادل 1 بایت هست رو ذخیره میکنه. string هم که میشه گفت آرایه ای از کاراکتر ها هست در واقع هر کدوم از این انواع نقطه شروع اطلاعاتی رو روی قسمتی از رم رو مشخص میکنن و بنا به نوعشون تا بایت های لازم رو در اختیارمون قرار میدن. مثلا شما میتونی به DWORD از طریق دو تا WORD پشت سر هم نیز دسترسی داشته باشی و یا از متغیری با نوع WORD به عنوان دو تا char پشت سر هم کار کنی. نوع wchar_t هم که دو بایت حافظه رو در اختیار میگذاره میتونه کاراکتر های بیشتری رو مثلا حروف چینی و فارسی و آسیایی و ... رو ذخیره کنه. از word و DWORD معمولا برای ذخیره ی اعداد استفاده میشه و از char , wchar_t و string برای کاراکتر ها و رشته های متنی استفاده میشه. و نوع QWORD هم که به اصطلاح Quad Word یعنی چهار تا Word پشت سر هم و معادل دو تا DWORD و 64 بیت و 8 بایت هست.
اگه درست نوشته باشم نسبتهاشون مثل نمودار زیر هست که همشون به شکل بدون علامت فرض میشن :
_______________________________
ًQWORD =
DWORD DWORD =
Word Word Word Word =
char char char char char char char char =
64 bit =
8 byte
____________________________________
اما تفاوت int با DWORD یعنی با علامت و بی علامت مربوط به طرز خوندن اطلاعات از 32 تا بیت مربوطه هست که نوع int اولین بیت سمت چپ رو به علامت اختصاص میده ولی نوع DWORD اون بیت اول رو هم جزئ مقدار عدد حساب میکنه و اگه اون بیت برابر صفر باشه دو تا جنس یک مقدار صحیح مثبت رو نشون میدن و به خاطر همین نوع DWORD دامنه اعدادی که پوشش میده رو تو دامنه اعداد مثبت پهن میکنه ولی نوع int نصف دامنه در توان خودش رو برای اعداد منفی مصرف میکنه. و انواع دیگه هم به همین شکل با علامت و بدون علامت هستن.
ببخشید طولانی شد.