صفحه 1:
مبانی کامپیوتر و برنامه سازی
فصل دوم : نحوه نمایش اطلاعات در
کامپیوتر
صفحه 2:
۲ نحوه نمایش اطلاعات در کامپیوتر
* اطلاعات در کامپیوتر به دو دسته اصلی تقسیم می گردند:
* اطلاعات کاراکتری (حرفی) : مانند :2... 8 ۵ 5 # © !
؟ اطلاعات عددی که خود به دو دسته اعداد صحیح و اعداد اعشاری
تقسیم می گردند.
* برای نمایش اطلاعات در کامپیوتر از مبنای 2 استفاده می گردد
صفحه 3:
۱-۲ سستم اعدا
* مبنای 10 , مبنای مورد استفاده انسانها در ریاضیات
© در ریاضیات متداول هر عدد !| بصورت زیر تفسیر می گردد
(ja رق يق یره Ay )yy = Ay X 10° + a, x 10! +a, x 10? +...a,, 0
*_ بعنوان مثال عدد 3482 بصورت زیر تفسیر می گردد :
=2x 10°+8 x 101 + 4 102 + 3 ۶ ,,) 3482(
*_ در سیستم دهدهی تیاز به 10 رقم (از 0 تا 9) داریم.
إن اعداد را در هر مبناى دلخواء ديكري مان نيز نشان داد در اينصورت هر عدد
poet ole SN ۳
ip X Dba, X bE +a, x be +...a,. x DM
@, a; ay )y =
كاملا واضح است که در مبنای ۲ نياز به ا رقم (از 0 تا1- ) خواهیم دا
بعنوان مثال یک عدد در مبنای 6 از ارقام 5..0 تشکیل می گردد, بنایراین (341), یک عدد درست
است اما (592), غیر قابل قبول می باشد.
جم8 یم) ع لا
صفحه 4:
۲-۲ تبدیل مبناها
* برای تبدیل یک عدد از مبنای 10 به هر مبنای دلخواه ۵, از روش تقسیمات
متوالی استفاده می گردد ws. J =
۶( < و«(941)
oa
999 6 ©
ه| 0 5 ه©
@ 6 fo
9
0.
6209(9) < مم(۵66)
صفحه 5:
۲-۲ تبدیل مبناها
8 برای:ییدیل ار میبای یه میتای 10 کافی اسب ازقام عددمورد:نطر زآردز
ارزش مکانی آنها ضرب و سپس با یکدیگر جمع کنیم .
(?)r0 = و(4205)
< 864 + 72 +0 + 5 2 63 4۷+ 62 2*۷ + :6 0۷ + 60 < 5 < و(4205)
,)941(
صفحه 6:
۳-۲ حبنای ۲ و اهمیت آن
* مبنای 2 اهمیت بسیار زیادی در کامپیوترهای دیجیتال دارد. چراکه :
۴ در مبنای:2 تفها.به 2 رقم نیاز دازیم یعنی 0 و1
آین دو رقم را می توان توسط هر ابزاری که دارای دو حالت باشد نشان داد.
مثلا یک لامپ که خاموش بودن لامپ به معنای 0 و روشن بودن آن به معنای 1
می باشد.
این همان ایده ای است که کامپیوترهای دیجیتال از آن استفاده می کنند.
همانطور که قبلا نیز گفته شد واحد نگهداری اطلاعات در کامپیوتر بیت می
باشد كه هر بيت قادر به نكهدارى 0 ويا 1 است. ب كنار هم قراد ادن تور
بایتها تشکیل می گردند و بدینوسیله اطلاعات مورد نظر در قالب بایتها تشکیل
فى گردند.
صفحه 7:
۳-۲ حبنای ۲ و اهمیت آن
* تبديل اعداد از مبناى 10 به 2 و بالعكس بسيار ساده و هماتئند ساير مبنا ها
است.
* تبدیل از مبنای 2 به 10
(11001001), = (?);5
(11001001), = 1 ۷ 20+ 0 22 + 0 22+ 1۷ 23 + 0 247+ 0
x 2+ 1 ۷ 25+ 1 7
=14040+8+0+0+ 64 +128 = (201),,
۶ تبدیل از مبنای 10 به مبنای 2
«(۶) < و«(486)
صفحه 8:
۳-۲ حبنای ۲ و اهمیت آن
ع مهم
8 #00
۵ ded |e
“@ ۵۵ ۱۵0۵ |
“ ~~ 80 [80 Le
ممح ]©6 |e
Owe هم 6
le le وى حم
e [a le
10 2_,@
@
۹
و(000000009) - ,© ©»)
صفحه 9:
۴-۲ سبناهای ۸ و ۱۶ و کاربرد آنها
* مشکل اصلی در مبنای 2 اندازه بزرگ اعداد است. بعنوان مثال عدد486 که
مینای 10 تتها ۵ رقم دارد. تبذیل به یک عدد 9 رقمی )2 مبنای 2 شده است *د
8 این سل رآعب من زلبود گم مضا مه دای نیوا اسانها بسبان بقل
مود و معمولا برنامه تویسان علاقه جدای دی هه مه
* مبنای 8 نیز همانند سایر مبناها می توا استفاده قرا ظا
تفاوین با شتا متا تاره اما ol Glo cles تفاده قرار كيرد ود 3-9
Si
مینای 2 U's °
که sil. مبناى 8 تنها ارقام 0 تا 7 استفا شوند. | 3
هوانطور کم مي دانيم دب یام 8 تنها ارقام 0 تا 7 استفاوه مى شوند از طرف
می توان
1 127 , ... ,01022 ,00121 ,0 < 000
| با آن نشان داد. بنابرا توا فت که 3 مبنای 2, برا
at” ان داد بقابراين من توآن ينيجه گرفت که هر 3 رقم در مضاک 2 بواید
ساده ل
صفحه 10:
:: ۴-۲ سبناهای ۸ و ۱۶ و کاربرد آنها
* تبديل از مبناى 2 به 8
400 0 © 00000
تست سرت نیت
5
69 و و ۲
e
۶ تبدیل از مبنای 6 به 6
و(00000000) 2 و( 0 م 9)
ood
oad 0
صفحه 11:
۴-۲ حبناهای ۸ و ۱۶ و کاربرد آنها
* اکثر برنامه نوبسان کامپیوتر ترجیح می دهند از مبنای دیگری بنام مبنای
6 استفاده نمایند.
* این مینا نیز همانند مبنای 8 بسادگی قابل تبدیل به مبنای 2 است. اما
اعداد آن به ارقام کمتری نیاز دارند:
4 ,زر این میت باه 16 زهمدارتمتدرطالنکه ارفام موجود معط ۵ات انیت
das Gases از حزوف ۸ تا ۲ یرای ارقام 10 15 استفادهمن گردد.یعتی
ارقام عبارتند از :
© ع م © 8 م 9 8 7 6 5 4 3 2 1 0
* تبدیل اعداد از مبنای 2 به 16 و بالعکس ازهمان روش گفته شده برای
مینای 8 استفاده می نماییم با اين تفاوت که هر رقم در مبنای 16 معادل 4
رقم دز مبناخ 2 ات
صفحه 12:
:: ۴-۲ سبناهای ۸ و ۱۶ و کاربرد آنها
* تبديل از مبناى 2 به 16
4000 4 © 0 0 0 6۵ ۵ ٩< )909(
Sa ee
9 9 9
5 از مبنای 9) به dase
( 7) 6 و(0000000000000) جما
AWW Haq 00
صفحه 13:
۵-۲ نمایش اعداد صحیح
اعداد صحیح در کامپیوتر با استفاده از مبنای 2 نمایش داده می شوند.
ترا تمايش اعداد ضحیح از1 با 2 بانت وبا بیشیز (يستهنيه اندازه
عدد) استفاده می گردد
جانجه قضد وخيره اعداد ضعيع میت زا حاسهاسیم ما اسفازه از 5
بایت سی توات: اعداد ۵ با 255 راذخیره کردر يتايراين تراف: 1 بايت»
بزرگترین عدد قابل ذخیره برایر است با 28 - 1 2 255.
با استدلال تشابهی جتانچه از 2 بايت يا:16 تيت :استفادة گزدد:
بزرگترین عدد قایل ذخیره برایر 216 - 1 > 65535 خواهد بود.
۶ اقا تشکل آنشتکة آعداد متفی,را جگونه دجیزهنماییم؟
* برای اين کار چندین روش وجود دارد که هریک را جداگانه بررسی مى
صفحه 14:
۱-۵-۲ استفاده از بیت علامت
* در این روش سمت چپ ترین بیت برای علامت عدد درنظر گرفته می
شود و سایر بیتها مقدار عدد رانشان می دهند.
© 0 بودن بیت علامت بمعنای مثبت بودن و 1 بودن آن به معنای منفی
بودن عدد می باشد.
* با داشتن 8 بیت می توان اعداد بین -127 ... +127 را نمایش داد.
1/1010011 2021221
83- 83+
۶ این روش دو مشکل اصلی دارد:
*_دو مقدار متفاوت +( و -() وجود دارد.
* براى عمل جمع و تفريق نياز به دو مدار جداكانه داريم.
صفحه 15:
۲-۵-۲ استفاده از متمم ۱
* در اين روش اعداد مثبت بصورت معمولی نمایش داده می شوند. اما برای
تمایش اعداد متفن: ابتدا قدر مطلق آن را (بصورت عدد مثبت) نمايش
داده و سيس كليه 0هاءرا مه:1 وبالعكسن تيديل فق تهابيم:
00 00 0000 4 0020 00 0 og
+09 -09
* با توجه به محدودیت تعدلد بیتها و جلوگیری از تداخل اعداد مثبت و منفی؛ برای اعداد مثبت
باید بیت سمت چپ () باشد و بهمین دلیل بازه اعداد مجاز از -127 تا +4972 است.
*_خوشیختانه اکنون تنها نياز به يك مدار برای عمل جمع و تفریق است اما هنوز هم دو نمایش
مختلف برای +) و-0) وجود دارد.
00000000 (111
+ 0
صفحه 16:
۲-۵-۲ استفاده از متمم ۲
6 در این:روش برای نمایش اعداد منقن انتدا تم 1 آنها را محاسته و سیس
آن را با 1 جمع می کنیم.
0 اج | 10100101 [+—| 01011010
‘90+ oo
۶ بازه اعداد مجاز در این روش از -128 تا +4972 است.
صفحه 17:
۲-۵-۷ استفاده از متعم ۲
۶ این روش هردو مشکل روشهای قبل را حل می کند. چرا که :
© تتنهایک برای +0 و -() وجود دارد.
00000000 ]—+[ 11111111 ] —+ x] 00000000
0 +0
*_برای عمل تفریق میتوان از همان مدار جمع استفاده کرد. بدین ترتیب که ابتدا عدد دوم را به روش متمم
© منفی کرده و با عدد اول جمع می کنیم.
53 - 22 < 53 + )-22( 2 1
(00110101) - (00010110) = (00110101) + (11101010) = 1(00011111)
38 - 60 = 38 + (-60) = -22
(00100110) - (00111100) = (00100110) + (11000100) = (11101010)
صفحه 18:
۶-۲ نمایش pro اعشاری
* نمایش اعداد اعشاری در کامپیوتر مشکلتر است.
* ما معمولا اعداد اعشاری را به شکل ممیز ثابت نشان می دهیم : 53.648
* اما شکل دیگری نیز وجود دارد که به آن نماد علمی یا ممیز شناور گفته می
شود و به شکل زیر است :
x 10° 53.648
x 10! 5.3648
x 10? 0.53648
x 107 5364.8
yglailay | كه ديدة دتگان عمیر در ابن ماییق تور اس اند
ied أ کرد و لت توا یز امامت با تلم زدد. تماد
bed ls ود و له و mB IGS Diag ene a
ايش اعدا اعشارى در كامبيو استانداردهای مختلفی وجود دارد که
و سای ل مشتركند و تنها تفاوتهايى در جزئيات دارند.
صفحه 19:
* ما در اینجا از یک روش استاندارد متداول که توسط انجمن معتبر ۱۴۶۴
ارائه شده است, استفاده می کنیم. اين استاندارد بنام
IEEE Standard 754 Floating Point Numbers
شناخته شده است.
* برای اطلاعات بیشتر به سایت ۱]]۵://5]6۱۱05۲05.1666.0۲۴0! مراجعه
نمایید.
* در استاندارد مورد نظر هر عدد اعشارى در يك كلمه 32 بيتى ذخيره مى
كردد. ساختار هر عدد بصورت زير است:
0 كيم
TN /
صفحه 20:
* برای ذخیره یک عدد اعشاری باید ابتدا آن را به نماد علمی نرمال در
مبنای 2 تبدیل کنیم. سپس آن را به شکل زیر ذخیره می کنیم :
۶ علامت عدد را در 5 قرار مى دهيم (مثيت >0 و منقف > دای
* توان رادر قسمت » قرار مى دهيم كه يى عدد مثبت بدون علامت
است بين 0 تا 255).
۰ مهم آنکه از آنجا که ممکن است توان:مثبت یا متفی باشد: ابتدا 123
واحد به توان اضافه می کنیم و سپس آن را ذخیره می “pus
* پنابراین 131 < 6 باشد بدین معناست که توان برابر 4 بوده است
0 به معنای توان پراین 7 FE NOES
* البته توانهای 62255 و 620 برای منظورهای خاصی در نظر گرفته شده
اند که بعا توضیح داده خواهند شد؛
* قسمت پایه عدد را در مانتیس قرار می دهیم.
* نکته جالب آن است که چون در نمایش ترمال قسمت صحیح تنها يك رقم
غیرصفر دا د و در نمایش دودویی نیز تنها رقم غیر صفر, رقم 1 می باشد؛
نابراین تنهاً قسمت اعشاری در مانتیس ذخیره می گردد و قسمت صحیح
بظور پیش فرض 1 درنظر ارفته,می شود این باعت.می نود که یک Bin
در ذخیره سازی صرفه جویی گردد:
صفحه 21:
۶-۲ نمایش pro اعشاری
* مثال: عدد 486 را بصورت دودویی اعشاری ذخیره نمایید.
© ابقدا آن را به مبنای 2 تبدیل می کنیم.
,)111100110( = ,,)486(
* اکنون داریم :
۶ ۷ 1.11100110 = 111100110
s:0 e:8+127 = 135 = 10000111 m:11100110
* بنابراین جواب نهایی بصورت زیر خواهد شد :
11100110000000000000000 | همم ]|
صفحه 22:
* مثال 2: عدد -121.640625را بصورت دودویی اعشاری ذخیره نمایید.
۴ بیدا عدد 122 را بدهيداي 2 میبريم:
(121),.= (1111001),
* واما براي تبدیل قسمت اعشارى بإيد از ووش ضريهاى متوالى استفاده تماييم. بدين
ضورت که آبندا آن را در 2 ضرت کرده و لدعت شدي جاسلطري رأ ذكيرة من
. همین عمل را مجددا برروی قسمت اعشاری حاصلضرب انجام می دهي و
ار را تا صفر شدن قسمت اعشاری و پا پر شدن تعداد بیتهای کلمه مورد:
(23 بیت) تکرار می کنیم. در پایان ارقام ذخیره شده را از آول به آخر به ترتیب پس
از ممیز قرار می دهیم. داریم :
1
x 2 = 1.28125 0.640625
x 2 = 0.5625 0.28125
قسمنصحح < 1 1.125 = 2 x 0.5625
قسمنصحح 2 0
قسمنصحح < 0
قسمنصحیح < 1
(0.640625),. = (0.101001),
صفحه 23:
۶-۲ نمایش مقادیر اعشاری
۶ بنابراین عدد نهایی بصورت زیر درخواهد آمد :
x 2°), 1.111001101001( = ,)1111001.101001( = ,)121.640625(
sil ه : 6 + 127 = 133 = 10000011 m: 111001101001
@] eoo00n | —11100110100100000000000
۶ نکته مهم : توجه داشته باشید که به دلیل محدود بودن اندازه مانتيس (©© بيت)» در هنكام
تبدیل لعداد از مبنای 000 به مبنای 0 مجبور هستیم عمل ضرب را تا زمانیکه بیتها پر شوند
ادامه دهیم. این مسئله باعث می شود که مقدار تقریبی اعداد در کلمه 70 بیتی ذخیره گردد.
بنابراین در هنگام کار با اعداد اعشاری به اين مسئله توجه کنید
صفحه 24:
wo
* یک يد اعشاری ذخیره شده به فرم استاندارد موردنظر به شکل زیر تفسیر
دد:
اگر 255<0>ه آنگاه 2۳217 < (1.۳) لا ۶ > عدد
اگر 620 و ۰ غير صفر باشد آنكاه (2۳6)10 « x (O.m) - عدد
* که به آن عدد 2ait oe ws (unnormalized) Jit دلیل این مسئله آنست که
خوج كزين ترات راوگان ماهس حقکی ابدین اقانه
اگر ۵-0 و 5-0 آنگاه < 0 عدد
* که البته بسته به میزان 5 مقدار آن +0 یا -0 خواهد بود.
اگر 62255 و ۲0 غیرصفر باشد آنگاه حاصل یک عدد نیست (۵۱1ل۱ یا 2 ۱۱۵۲
(Number
اگر 62255 و ۲۱-0 و 5-0 آنگاه عدد برابر مثبت بینهایت است.
اگر 6-255 و ۲۱-0 و 5-21 آنگاه عدد برابر منفی بینهلیت است.
صفحه 25:
wks ۷-۲ کاراکترها در کامپیوتر
ها اطلاعات عددی, گاهی لازم است که حروف و علائم نیز ذ
ور كامبيوترها علاوه بر اطلا 6 زم حروف و علائم نيز ذخيره
براي ذخيره سازى كاراكترها به هريك از آنها يك كد عددى نسبت داده شده است و در
۳ خی هر ورد استفاده. کد اک te sh کاراکتر |
در گذشته > د إستفاده, كد |2561 بود كه براى يش هيع اکتر
کب ا ا 3 بين 70 5 Sab
نجا که هر بایت می نوا
LG pst Ise تیف ue eee ce ch OL cual زا دق مور ات دا
برای عنم و حروق | 1 تعریف شده ٌست ott ی بالتر از 12 برای هر قر كشور
(Sisal aoa eh 3
خالى داشت ثيده است ناريتوائقد حرو اص .زيان خود را تعزيف کنند. بعنوان
0-48 ۰ 0267 8-66
اما امروزه و بدليل ارتباطات كسترده al از يق انترنت, ناز به تعريف يك كد
المللى الى زا دربن as
aT ee te ae ل
يكسان cal ae x
المللی نم 5046 ادا lols oles Gods gS cl oa
oe ری جه ربأ an ذا ارم cab ins براي نمايش
ندید زر جمله زیان له و سیستم 2 می کنند.
مبانی کامپیوتر و برنامه سازی
فصل دوم :نحوه نمایش اطالعات در
کامپیوتر
2نحوه نمایش اطالعات در کامپیوتر
اطالعات در کامپیوتر به دو دسته اصلی تقسیم می گردند:
اطالعات کاراکتری (حرفی) :مانند ! @ # $ A B …Z:
اطالعات عددی که خود به دو دسته اعداد صحیح و اعداد اعشاری
تقسیم می گردند.
برای نمایش اطالعات در کامپیوتر از مبنای 2استفاده می گ9ردد
1-2سیستم اعداد
مبنای ، 10مبنای مورد استفاده انسانها در ریاضیات
در ریاضیات متداول هر عدد Nبصورت زیر تفسیر می گردد :
N = (an-1 an-2 … a2 a1 a0 )10 = a0 × 100 + a1 × 101 + a2 × 102 + … an-1 × 10n-1
بعنوان مثال عدد 3482بصورت زیر تفسیر می گردد :
(3482 )10 = 2 × 100 + 8 × 101 + 4 × 102 + 3 × 103
در سیستم دهدهی نیاز به 10رقم (از 0تا )9داریم.
می توان اعداد را در هر مبنای دلخواه دیگری مانند bنیز نشان داد در اینصورت هر عدد
مانند Nدر مبنای bبصورت زیر تفسیر می گردد :
N = (an-1 an-2 … a2 a1 a0 )b = a0 × b0 + a1 × b1 + a2 × b2 + … an-1 × bn-1
کامال واضح است که در مبنای bنیاز به bرقم (از 0تا ) b-1خواهیم داشت.
بعنوان مثال یک عدد در مبنای 6از ارقام 5..0تشکیل می گردد ،بنابراین ( 6)341یک عدد درست
است اما ( 6)592غیر قابل قبول می باشد.
2-2تبدیل مبناها
برای تبدیل یک عدد از مبنای 10به هر مبنای دلخواه ،bاز روش تقسیمات
متوالی استفاده می گردد
(941)10 = (?)6
6
0
6
4
0
941 6
936 156 6
156 26
5
0 24
2
4
(941)10 = (4205)6
2-2تبدیل مبناها
برای تبدیل از مبنای bبه مبنای 10کافی است ارقام عدد مورد نظر را در
ارزش مکانی آنها ضرب و سپس با یکدیگر جمع کنیم .
(4205)6 = (?)10
= (4205)6 = 5 × 60 + 0 × 61 + 2 × 62 + 4 × 63 = 5 + 0 + 72 + 864
(941)10
.بنای 2و اهمیت آن
3-2م
مبنای 2اهمیت بسیار زیادی در کامپیوترهای دیجیتال دارد .چراکه :
در مبنای 2تنها به 2رقم نیاز داریم،یعنی 0و 1
آین دو رقم را می توان توسط هر ابزاری که دارای دو حالت باشد نشان داد.
مثال یک المپ که خاموش بودن المپ به معنای 0و روشن بودن آن به معنای 1
می باشد.
این همان ایده ای است که کامپیوترهای دیجیتال از آن استفاده می کنند.
همانطور که قبال نیز گفته شد واحد نگهداری اطالعات در کامپیوتر بیت می
باشد که هر بیت قادر به نگهداری 0و یا 1است .با کنار هم قرار دادن بیتها،
بایتها تشکیل می گردند و بدینوسیله اطالعات مورد نظر در قالب بایتها تشکیل
می گردند.
.بنای 2و اهمیت آن
3-2م
تبدیل اع9داد از مبنای 10به 2و بالعکس بسیار ساده و همانند سایر مبنا ها
است.
تبدیل از مبنای 2به 10
(11001001)2 = (?)10
(11001001)2 = 1 × 20 + 0 × 21 + 0 × 22 + 1 × 23 + 0 × 24 + 0
× 25 +
1 × 26 + 1 × 27
= 1 + 0 + 0 + 8 + 0 + 0 + 64 + 128 = (201)10
تبدیل از مبنای 10به مبنای 2
(486)10 = (?)2
.بنای 2و اهمیت آن
3-2م
2
0
2
1
0
2
3
2
2
7
6
2
15
14
486 2
486 243 2
242 121 2
0
120 60 2
1
60 30
1
30
0
0
1
1
1
1
(486)10 = (111100110)2
.بناهای 8و 16و کاربرد آنها
4-2م
مشکل اصلی در مبنای 2اندازه بزرگ اعداد است .بعنوان مثال عدد 486که در
مبنای 10تنها 3رقم دارد ،تبدیل به یک عدد 9رقمی در مبنای 2شده است.
این مسئله باعث می شود که محاسبه در مبنای 2برای انسانها بسیار مشکل
شود و معموال برنامه نویسان عالقه چندانی به مبنای 2ندارند.
مبنای 8نیز همانند سایر مبناها می تواند مورد استفاده قرار گیرد و در ظاهر
تفاوتی با سایر مبناها ندارد .اما ویژگی جالب این مبنا در تبدیل ساده آن به
مبنای 2و بالعکس است.
همانطور که می دانیم در مبنای 8تنها ارقام 0تا 7استفاده می شوند .از طرف
دیگر اگر یک عدد در مبنای 2با حداکثر 3رقم را درنظر بگیریم ،در می یابیم که
می توان
000 = 0, 001=1, 010=2, … , 111=7
را با آن نشان داد .بنابراین می توان نتیجه گرفت که هر 3رقم در مبنای ،2برابر
است با 1رقم در مبنای 8و بالعکس .این نتیجه گیری تبدیل این دو مبنا را به
یکدیگر ساده می کند.
.بناهای 8و 16و کاربرد آنها
4-2م
تبدیل از مبنای 2به 8
= 10101110
)(256
2
6
5
8
تبدیل از مبنای 8به 2
( 2 7 1 )8 = (10111001)2
001
111
010
.بناهای 8و 16و کاربرد آنها
4-2م
اکثر برنامه نویسان کامپیوتر ترجیح می دهند از مبنای دیگری بنام مبنای
16استفاده نمایند.
این مبنا نیز همانند مبنای 8بسادگی قابل تبدیل به مبنای 2است ،اما
اعداد آن به ارقام کمتری نیاز دارند.
در این مبنا نیاز به 16رقم داریم درحالیکه ارقام موجود فقط 10تا است.
بهمین دلیل از حروف Aتا Fبرای ارقام 10تا 15استفاده می گردد.یعنی
ارقام عبارتند از :
0 1 2 3 4 5 6 7 8 9 A B C D E F
تبدیل اعداد از مبنای 2به 16و بالع9کس ازهمان روش گفته شده برای
مبنای 8استفاده می نماییم با این تفاوت که هر رقم در مبنای 16معادل 4
رقم در مبنای 2است.
.بناهای 8و 16و کاربرد آنها
4-2م
تبدیل از مبنای 2به 16
1 1 0 1 0 1 1 1 0 0 1 = (6B9)16
9
B
6
تبدیل از مبنای 16به 2
( A 3 E )16= (101000111110)2
1110
0011
1010
5-2نمایش اعداد صحیح
اعداد صحیح در کامپیوتر با استفاده از مبنای 2نمایش داده می شوند.
برای نمایش اعداد صحیح از 1یا 2بایت و یا بیشتر (بسته به اندازه
عدد) استفاده می گردد.
چنانچه قصد ذخیره اعداد صحیح مثبت را داشته باشیم ،با استفاده از 1
بایت می توان اعداد 0تا 255را ذخیره کرد .بنابراین برای 1بایت،
بزرگترین عدد قابل ذخیره برابر است با .255 = 1 – 28
با استدالل مشابهی چنانچه از 2بایت یا 16بیت استفاده گردد،
بزرگترین عدد قابل ذخیره برابر 65535 = 1 – 216خواهد بود.
اما مشکل آنستکه اعداد منفی را چگونه ذخیره نماییم؟
برای این کار چندین روش وجود دارد که هریک را جداگانه بررسی می
نماییم.
1-5-2استفاده از بیت عالمت
در این روش سمت چپ ترین بیت برای عالمت عدد درنظر گرفته می
شود و سایر بیتها مقدار عدد رانشان می دهند.
0بودن بیت عالمت بمعنای مثبت بودن و 1بودن آن به معنای منفی
بودن عدد می باشد.
با داشتن 8بیت می توان اعداد بین 127+ … 127-را نمایش داد.
1 1010011
0 1010011
-83
این روش دو مشکل اصلی دارد:
دو مقدار متفاوت 0+و 0-وجود دارد.
برای عمل جمع و تفریق نیاز به دو مدار جداگانه داریم.
+83
2-5-2استفاده از متمم 1
در این روش اعداد مثبت بص9ورت معمولی نمایش داده می شوند .اما برای
نمایش اعداد منفی ،ابتدا قدر مطلق آن را (بصورت عدد مثبت) نمایش
داده و سپس کلیه 0ها را به 1و بالعکس تبدیل می نماییم.
1 01 01 1 00
01 01 001 1
+ 83
- 83
با توجه به محدودیت تعدا8د بیتها و جلوگیری از تداخل اعداد مثبت و منفی ،برای اعداد مثبت
باید بیت سمت چپ 0باشد و بهمین دلیل بازه اعداد مجاز از 127-تا 127+است.
خوشبختانه اکنون تنها نیاز به یک مدار برای عمل جمع و تفریق است اما هنوز هم دو نمایش
مختلف برای 0+و 0-وجود دارد.
11111111
0-
00000000
0+
3-5-2استفاده از متمم 2
در این روش برای نمایش اعداد منفی ابتدا متمم 1آنها را محاسبه و سپس
آن را با 1جمع می کنیم.
10100110
10100101
01011010
90-
بازه اعداد مجاز در این روش از 128-تا 127+است.
90+
3-5-2استفاده از متمم 2
این روش هردو مشکل روشهای قبل را حل می کند .چرا که :
تنها یک نمایش برای 0+و 0-وجود دارد.
1 00000000
0
11111111
00000000
0+
ب رای عمل تفریق می توان از همان مدار جمع استفاده کرد .بدین ترتیب که ابتدا عدد دوم را به روش متمم
2منفی کرده و با عدد اول جمع می کنیم.
53 – 22 = 53 + (-22) = 31
)(00110101) – (00010110) = (00110101) + (11101010) = 1(00011111
38 – 60 = 38 + (-60) = -22
)(00100110) – (00111100) = (00100110) + (11000100) = (11101010
6-2نمایش مقادیر اعشاری
نمایش اعداد اعشاری در کامپیوتر مشکلتر است.
ما معموال اعداد اعشاری را به شکل ممیز ثابت نشان می دهیم 53.648 :
اما شکل دیگری نیز وجود دارد که به آن نماد علمی یا ممیز شناور گفته می
شود و به شکل زیر است :
53.648 × 100
5.3648 × 101
0.53648 × 102
5364.8 × 10-2
همانطور که دیده می شود ،مکان ممیز در این نمایش شناور است و می تواند
در هر نقطه ای قرار گیرد و البته توان نیز باید متناسب با آن تنظیم گردد .نماد
علمی نرمال به حالتی گفته می شود که قسمت صحیح فقط دارای یک رقم
غیر صفر باشد.
برای نمایش اعداد اعشاری در کامپیوتر استانداردهای مختلفی وجود دارد که
همگی در اصول مشترکند و تنها تفاوتهایی در جزئیات دارند.
6-2نمایش مقادیر اعشاری
ما در اینجا از یک روش استاندارد متداول که توسط انجمن معتبر IEEE
ارائه شده است ،استفاده می کنیم .این استاندارد بنام
IEEE Standard 754 Floating Point Numbers
شناخته شده است.
برای اطالعات بیشتر به سایت http://standards.ieee.orgمراجع9ه
نمایید.
در استاندارد مورد نظر هر عدد اعشاری در یک کلمه 32بیتی ذخیره می
گردد .ساختار هر عدد بصورت زیر است:
8
23
m
مانتیس
e
توان
1
s
عالمت
6-2نمایش مقادیر اعشاری
برای ذخیره یک عدد اعشاری باید ابتدا آن را به نماد علمی نرمال در9
مبنای 2تبدیل کنیم .سپس آن را به شکل زیر ذخیره می کنیم :
عالمت عدد را در sقرار می دهیم (مثبت = 0و منفی = )1
توان را در قسمت eقرار می دهیم که یک عدد مثبت بدون عالمت
است(بین 0تا .)255
نکته مهم آنکه از آنجا که ممکن است توان مثبت یا منفی باشد ،ابتدا 127
واحد به توان اضافه می کنیم و سپس آن را ذخیره می کنیم.
بنابراین e = 131باشد بدین معناست که توان برابر 4بوده است و
e=120به معنای توان برابر 7-است.
البته توانهای e=255و e=0برای منظورهای خاصی در نظر گرفته شده
اند که بعدا توضیح داده خواهند شد.
قسمت پایه عدد را در مانتیس قرار می دهیم.
نکته جالب آن است که چون در نمایش نرمال قسمت صحیح تنها یک رقم
غیرصفر دارد و در نمایش دودویی نیز تنها رقم غیر صفر ،رقم 1می باشد؛
بنابراین تنها قسمت اعشاری در مانتیس ذخیره می گردد و قسمت صحیح
بطور پیش فرض 1درنظر گرفته می شود .این باعث می شود که یک بیت
در ذخیره سازی صرفه جویی گردد.
6-2نمایش مقادیر اعشاری
مثال :عدد 486را بصورت دودویی اعشاری ذخیره نمایید.
ابتدا آن را به مبنای 2تبدیل می کنیم.
(486)10 = (111100110)2
اکنون داریم :
111100110 = 1.11100110 × 28
m : 11100110
e : 8+127 = 135 = 10000111
بنابراین جواب نهایی بصورت زیر خواهد شد :
11100110000000000000000
10000111
0
s:0
6-2نمایش مقادیر اعشاری
مثال :2عدد 121.640625-را بصورت دودویی اعشاری ذخیره نمایید.
ابتدا عدد 121را به مبنای 2می بریم:
واما ب9رای تبدیل قسمت اعشاری باید از ر9وش ضربهای متوالی استفاده نماییم .بدین
ص9ورت که ابتدا آن را در 2ضرب کرده و قسمت ص9حیح حاصلضرب را ذخیره می
کنیم .همین عمل را مجددا برروی قسمت اعشاری حاصلضرب انجام می دهیم و
اینکار را تا ص9فر شدن قسمت اعشاری و یا پر شدن تعداد بیتهای کلمه موردنظر
( 23بیت) تکرار می کنیم .در پایان ارقام ذخیره شده را از اول به آخر به ترتیب پس
از ممیز قرار می دهیم .داریم :
0.640625 × 2 = 1.28125
ق99سمتص99حیح = 1
0.28125 × 2 = 0.5625
ق99سمتص99حیح = 0
0.5625 × 2 = 1.125
ق99سمتص99حیح = 1
0.125 × 2 = 0.25
ق99سمتص99حیح = 0
0.25 × 2 = 0.5
ق99سمتص99حیح = 0
0.5 × 2 = 1.00
ق99سمتص99حیح = 1
(121)10 = (1111001)2
(0.640625)10 = (0.101001)2
6-2نمایش مقادیر اعشاری
بنابراین عدد نهایی بصورت زیر درخواهد آمد :
(121.640625)10 = (1111001.101001)2 = (1.111001101001 × 26)2
m : 111001101001
e : 6 + 127 = 133 = 10000011
11100110100100000000000
10000011
s:1
1
نکته مهم :توجه داشته باشید که به دلیل محدود بودن اندازه مانتیس ( 23بیت) ،در هنگام
تبدیل ا8عداد از مبنای 10به مبنای 2مجبور هستیم عمل ضرب را تا زمانیکه بیتها پر شوند
ادامه دهیم .این مسئله باعث می شود که مقدار تقریبی اعداد در کلمه 32بیتی ذخیره گردد.
بنابراین در هنگام کار با اعداد اعشاری به این مسئل8ه توجه کنید
6-2نمایش مقادیر اعشاری
یک عدد اعشاری ذخیره شده به فرم استاندارد موردنظر به شکل زیر تفسیر
می گردد :
اگر e<255<0آنگاه (× (1.m) × 2e-127)1-
اگر e=0و mغیر صفر باشد آنگاه (× (0.m) × 2e-126)1-
s
= عدد
که به آن عدد غیرنرمال ( )unnormalizedگفته می شود .دلیل این مسئله آنست که
با کوچکترین توان ممکن یعنی 126-بتوان کوچکترین مانتیس ممکن (بدون اضافه
شدن )1را برای نمایش اعداد کوچک داشت.
اگر e=0و m=0آنگاه = 0عدد
s
= عدد
که البته بسته به میزان sمقدار آن 0+یا 0-خواهد بود.
اگر e=255و mغیرصفر باشد آنگاه حاصل یک عدد نیست ( NaNیا Not a
)Number
اگر e=255و m=0و s=0آنگاه عدد برابر مثبت بینهایت است.
اگر e=255و m=0و s=1آنگاه عدد برابر منفی بینهای9ت است.
7-2نمایش کاراکترها در کامپیوتر
در کامپیوترها عالوه بر اطالعات عددی ،گاهی الزم است که حروف و عالئم نیز ذخیره
گردد که به آنها کاراکتر می گوییم.
برای ذخیره سازی کاراکترها به هریک از آنها یک کد عددی نسبت داده شده است و در
حقیقت کد عددی هر کاراکتر در کامپیوت9ر ذخیره می گردد.
در گذشته پر کاربردترین کد مورد استفاده ،کد ASCII 9بود که برای نمایش هر کاراکتر از
یک بایت استفاده می کرد .از آنجا که هر ب9ایت می تواند بین 0تا 255تغییر کند ،بنابرای9ن
تا 256کاراکتر قابل تعریف است .از این بین کدهای بین 0تا 127بصورت استاندارد
برای عالئم و حروف انگلیسی تعریف شده است و کد9های باالتر از 127برای هر کشور
خالی گذاشته شده است تا بتوانند حروف خاص زبان خود را تعریف کنند .بعنوان مثال
به کد9های ASCIIزیر دقت کنید:
A=65
B=66
… C=67
0=48
… 1=49
اما امروزه و بد9لیل ارتباطات گسترده جهانی از طریق اینترنت ،نیاز به تعریف ی9ک کد
بین المللی می باشد که کلیه زبانهای جهانی را دربرگیرد .چراکه متنی که در کشور
دیگری به زبان فارسی نوشته می شود باید در ایران هم قابل خواندن باشد و الزمه این
مسئله یکسان بودن کدها است.
بهمین دلیل اخیرا کد بین المللی ب9نام Unicodeابداع شده است که تقریبا تمام زبانهای
زنده دنیا (از جمله زبان فارسی) را دربر می گیرد .البته این کد از 2بایت برای نمایش
هر کاراکتر استفاده می کند و سیستم عاملهای جدید همگی از آن حمایت می کنند.9