1 / 25

مبانی کامپیوتر و برنامه سازی

مبانی کامپیوتر و برنامه سازی. فصل دوم : نحوه نمایش اطلاعات در کامپیوتر مدرس : نگین معروفی. 2 نحوه نمایش اطلاعات در کامپیوتر. اطلاعات در کامپیوتر به دو دسته اصلی تقسیم می گردند: اطلاعات کاراکتری (حرفی) : مانند : A B …Z $ # @ !

amaris
Download Presentation

مبانی کامپیوتر و برنامه سازی

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. مبانی کامپیوتر و برنامه سازی فصل دوم : نحوه نمایش اطلاعات در کامپیوتر مدرس : نگین معروفی

  2. 2 نحوه نمایش اطلاعات در کامپیوتر • اطلاعات در کامپیوتر به دو دسته اصلی تقسیم می گردند: • اطلاعات کاراکتری (حرفی) : مانند :A B …Z $ # @ ! • اطلاعات عددی که خود به دو دسته اعداد صحیح و اعداد اعشاری تقسیم می گردند. • برای نمایش اطلاعات در کامپیوتر از مبنای 2 استفاده می گردد

  3. 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 از ارقام 0..5 تشکیل می گردد، بنابراین (341)6 یک عدد درست است اما (592)6 غیر قابل قبول می باشد.

  4. 6 6 6 2-2 تبدیل مبناها • برای تبدیل یک عدد از مبنای 10 به هر مبنای دلخواه b، از روش تقسیمات متوالی استفاده می گردد (941)10 = (?)6 6 941 936 156 26 156 5 4 24 0 0 0 2 4 (941)10 = (4205)6

  5. 2-2 تبدیل مبناها • برای تبدیل از مبنای b به مبنای 10 کافی است ارقام عدد مورد نظر را در ارزش مکانی آنها ضرب و سپس با یکدیگر جمع کنیم . (4205)6 = (?)10 (4205)6 = 5 × 60 + 0 × 61 + 2 × 62 + 4 × 63 = 5 + 0 + 72 + 864 = (941)10

  6. 3-2 مبنای 2 و اهمیت آن • مبنای 2 اهمیت بسیار زیادی در کامپیوترهای دیجیتال دارد. چراکه : • در مبنای 2 تنها به 2 رقم نیاز داریم،یعنی 0 و 1 • آین دو رقم را می توان توسط هر ابزاری که دارای دو حالت باشد نشان داد. مثلا یک لامپ که خاموش بودن لامپ به معنای 0 و روشن بودن آن به معنای 1 می باشد. • این همان ایده ای است که کامپیوترهای دیجیتال از آن استفاده می کنند. • همانطور که قبلا نیز گفته شد واحد نگهداری اطلاعات در کامپیوتر بیت می باشد که هر بیت قادر به نگهداری 0 و یا 1 است. با کنار هم قرار دادن بیتها، بایتها تشکیل می گردند و بدینوسیله اطلاعات مورد نظر در قالب بایتها تشکیل می گردند.

  7. 3-2 مبنای 2 و اهمیت آن • تبدیل اعداد از مبنای 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

  8. 2 2 2 2 2 2 2 2 3-2 مبنای 2 و اهمیت آن 2 486 486 243 121 242 0 60 120 1 30 60 1 15 30 0 14 7 0 3 6 1 1 2 1 0 0 1 1 (486)10 = (111100110)2

  9. 4-2 مبناهای 8 و 16 و کاربرد آنها • مشکل اصلی در مبنای 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 و بالعکس. این نتیجه گیری تبدیل این دو مبنا را به یکدیگر ساده می کند.

  10. 4-2 مبناهای 8 و 16 و کاربرد آنها • تبدیل از مبنای 2 به 8 1 0 1 0 1 1 1 0 = (256)8 2 6 5 • تبدیل از مبنای 8 به 2 ( 2 7 1 )8 = (10111001)2 001 010 111

  11. 4-2 مبناهای 8 و 16 و کاربرد آنها • اکثر برنامه نویسان کامپیوتر ترجیح می دهند از مبنای دیگری بنام مبنای 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 و بالعکس ازهمان روش گفته شده برای مبنای 8 استفاده می نماییم با این تفاوت که هر رقم در مبنای 16 معادل 4 رقم در مبنای 2 است.

  12. 4-2 مبناهای 8 و 16 و کاربرد آنها • تبدیل از مبنای 2 به 16 1 1 0 1 0 1 1 1 0 0 1 = (6B9)16 6 B 9 • تبدیل از مبنای 16 به 2 ( A 3 E )16 = (101000111110)2 1110 1010 0011

  13. 5-2 نمایش اعداد صحیح • اعداد صحیح در کامپیوتر با استفاده از مبنای 2 نمایش داده می شوند. • برای نمایش اعداد صحیح از 1 یا 2 بایت و یا بیشتر (بسته به اندازه عدد) استفاده می گردد. • چنانچه قصد ذخیره اعداد صحیح مثبت را داشته باشیم، با استفاده از 1 بایت می توان اعداد 0 تا 255 را ذخیره کرد. بنابراین برای 1 بایت، بزرگترین عدد قابل ذخیره برابر است با 28 – 1 = 255. • با استدلال مشابهی چنانچه از 2 بایت یا 16 بیت استفاده گردد، بزرگترین عدد قابل ذخیره برابر 216 – 1 = 65535 خواهد بود. • اما مشکل آنستکه اعداد منفی را چگونه ذخیره نماییم؟ • برای این کار چندین روش وجود دارد که هریک را جداگانه بررسی می نماییم.

  14. 1 1010011 0 1010011 -83 +83 1-5-2 استفاده از بیت علامت • در این روش سمت چپ ترین بیت برای علامت عدد درنظر گرفته می شود و سایر بیتها مقدار عدد رانشان می دهند. • 0بودن بیت علامت بمعنای مثبت بودن و1 بودن آن به معنای منفی بودن عدد می باشد. • با داشتن 8 بیت می توان اعداد بین -127 … +127 را نمایش داد. • این روش دو مشکل اصلی دارد: • دو مقدار متفاوت +0 و -0 وجود دارد. • برای عمل جمع و تفریق نیاز به دو مدار جداگانه داریم.

  15. 00000000 11111111 +0 -0 2-5-2 استفاده از متمم 1 • در این روش اعداد مثبت بصورت معمولی نمایش داده می شوند. اما برای نمایش اعداد منفی، ابتدا قدر مطلق آن را (بصورت عدد مثبت) نمایش داده و سپس کلیه 0ها را به 1 و بالعکس تبدیل می نماییم. 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 + 83 - 83 • با توجه به محدودیت تعداد بیتها و جلوگیری از تداخل اعداد مثبت و منفی، برای اعداد مثبت باید بیت سمت چپ 0 باشد و بهمین دلیل بازه اعداد مجاز از-127 تا +127 است. • خوشبختانه اکنون تنها نیاز به یک مدار برای عمل جمع و تفریق است اما هنوز هم دو نمایش مختلف برای +0 و-0 وجود دارد.

  16. 01011010 10100110 +90 -90 3-5-2 استفاده از متمم 2 • در این روش برای نمایش اعداد منفی ابتدا متمم 1 آنها را محاسبه و سپس آن را با 1 جمع می کنیم. 10100101 • بازه اعداد مجاز در این روش از-128 تا +127 است.

  17. 00000000 11111111 00000000 1 +0 -0 3-5-2 استفاده از متمم 2 • این روش هردو مشکل روشهای قبل را حل می کند. چرا که : • تنها یک نمایش برای +0 و -0 وجود دارد. • برای عمل تفریق می توان از همان مدار جمع استفاده کرد. بدین ترتیب که ابتدا عدد دوم را به روش متمم 2 منفی کرده و با عدد اول جمع می کنیم. 53 – 22 = 53 + (-22) = 31 (00110101) – (00010110) = (00110101) + (11101010) = 1(00011111) 38 – 60 = 38 + (-60) = -22 (00100110) – (00111100) = (00100110) + (11000100) = (11101010)

  18. 6-2 نمایش مقادیر اعشاری • نمایش اعداد اعشاری در کامپیوتر مشکلتر است. • ما معمولا اعداد اعشاری را به شکل ممیز ثابت نشان می دهیم : 53.648 • اما شکل دیگری نیز وجود دارد که به آن نماد علمی یا ممیز شناور گفته می شود و به شکل زیر است : 53.648 × 100 5.3648 × 101 0.53648 × 102 5364.8 × 10-2 • همانطور که دیده می شود، مکان ممیز در این نمایش شناور است و می تواند در هر نقطه ای قرار گیرد و البته توان نیز باید متناسب با آن تنظیم گردد. نماد علمی نرمال به حالتی گفته می شود که قسمت صحیح فقط دارای یک رقم غیر صفر باشد. • برای نمایش اعداد اعشاری در کامپیوتر استانداردهای مختلفی وجود دارد که همگی در اصول مشترکند و تنها تفاوتهایی در جزئیات دارند.

  19. 1 8 23 m e s مانتیس توان علامت 6-2 نمایش مقادیر اعشاری • ما در اینجا از یک روش استاندارد متداول که توسط انجمن معتبر IEEE ارائه شده است، استفاده می کنیم. این استاندارد بنام IEEE Standard 754 Floating Point Numbers شناخته شده است. • برای اطلاعات بیشتر به سایت http://standards.ieee.org مراجعه نمایید. • در استاندارد مورد نظر هر عدد اعشاری در یک کلمه 32 بیتی ذخیره می گردد. ساختار هر عدد بصورت زیر است:

  20. 6-2 نمایش مقادیر اعشاری • برای ذخیره یک عدد اعشاری باید ابتدا آن را به نماد علمی نرمال در مبنای 2 تبدیل کنیم. سپس آن را به شکل زیر ذخیره می کنیم : • علامت عدد را در s قرار می دهیم (مثبت = 0 و منفی = 1) • توان را در قسمت e قرار می دهیم که یک عدد مثبت بدون علامت است(بین 0 تا 255). • نکته مهم آنکه از آنجا که ممکن است توان مثبت یا منفی باشد، ابتدا 127 واحد به توان اضافه میکنیم و سپس آن را ذخیره می کنیم. • بنابراین e = 131 باشد بدین معناست که توان برابر 4 بوده است و e=120 به معنای توان برابر -7 است. • البته توانهای e=255 و e=0 برای منظورهای خاصی در نظر گرفته شده اند که بعدا توضیح داده خواهند شد. • قسمت پایه عدد را در مانتیس قرار می دهیم. • نکته جالب آن است که چون در نمایش نرمال قسمت صحیح تنها یک رقم غیرصفر دارد و در نمایش دودویی نیز تنها رقم غیر صفر، رقم 1 می باشد؛ بنابراین تنها قسمت اعشاری در مانتیس ذخیره می گردد و قسمت صحیح بطور پیش فرض 1 درنظر گرفته می شود. این باعث می شود که یک بیت در ذخیره سازی صرفه جویی گردد.

  21. 0 10000111 11100110000000000000000 6-2 نمایش مقادیر اعشاری • مثال: عدد 486 را بصورت دودویی اعشاری ذخیره نمایید. • ابتدا آن را به مبنای 2 تبدیل می کنیم. (486)10 = (111100110)2 • اکنون داریم : 111100110 = 1.11100110 × 28 s : 0e : 8+127 = 135 = 10000111 m : 11100110 • بنابراین جواب نهایی بصورت زیر خواهد شد :

  22. 6-2 نمایش مقادیر اعشاری • مثال 2: عدد -121.640625را بصورت دودویی اعشاری ذخیره نمایید. • ابتدا عدد 121 را به مبنای 2 می بریم: (121)10 = (1111001)2 • واما برای تبدیل قسمت اعشاری باید از روش ضربهای متوالی استفاده نماییم. بدین صورت که ابتدا آن را در 2 ضرب کرده و قسمت صحیح حاصلضرب را ذخیره می کنیم. همین عمل را مجددا برروی قسمت اعشاری حاصلضرب انجام می دهیم و اینکار را تا صفر شدن قسمت اعشاری و یا پر شدن تعداد بیتهای کلمه موردنظر (23 بیت) تکرار می کنیم. در پایان ارقام ذخیره شده را از اول به آخر به ترتیب پس از ممیز قرار می دهیم. داریم : 0.640625 × 2 = 1.28125قسمت صحیح = 1 0.28125 × 2 = 0.5625قسمت صحیح = 0 0.5625 × 2 = 1.125 قسمت صحیح = 1 0.125 × 2 = 0.25 قسمت صحیح = 0 0.25 × 2 = 0.5 قسمت صحیح = 0 0.5 × 2 = 1.00 قسمت صحیح = 1 (0.640625)10 = (0.101001)2

  23. 1 10000011 11100110100100000000000 6-2 نمایش مقادیر اعشاری • بنابراین عدد نهایی بصورت زیر درخواهد آمد : (121.640625)10 = (1111001.101001)2 = (1.111001101001 × 26)2 s : 1 e : 6 + 127 = 133 = 10000011m : 111001101001 • نکته مهم : توجه داشته باشید که به دلیل محدود بودن اندازه مانتیس (23 بیت)، در هنگام تبدیل اعداد از مبنای 10 به مبنای 2 مجبور هستیم عمل ضرب را تا زمانیکه بیتها پر شوند ادامه دهیم. این مسئله باعث می شود که مقدار تقریبی اعداد در کلمه 32 بیتی ذخیره گردد. بنابراین در هنگام کار با اعداد اعشاری به این مسئله توجه کنید

  24. 6-2 نمایش مقادیر اعشاری • یک عدد اعشاری ذخیره شده به فرم استاندارد موردنظر به شکل زیر تفسیر می گردد : • اگر 0<e<255 آنگاه (-1)s × (1.m) × 2e-127= عدد • اگر e=0 و m غیر صفر باشد آنگاه(-1)s × (0.m) × 2e-126= عدد • که به آن عدد غیرنرمال (unnormalized) گفته می شود. دلیل این مسئله آنست که با کوچکترین توان ممکن یعنی -126 بتوان کوچکترین مانتیس ممکن (بدون اضافه شدن 1) را برای نمایش اعداد کوچک داشت. • اگر e=0 و m=0 آنگاه = 0 عدد • که البته بسته به میزان s مقدار آن +0 یا -0 خواهد بود. • اگر e=255 و m غیرصفر باشد آنگاه حاصل یک عدد نیست (NaN یا Not a Number) • اگر e=255 و m=0 و s=0 آنگاه عدد برابر مثبت بینهایت است. • اگر e=255 و m=0 و s=1 آنگاه عدد برابر منفی بینهایت است.

  25. 7-2 نمایش کاراکترها در کامپیوتر • در کامپیوترها علاوه بر اطلاعات عددی، گاهی لازم است که حروف و علائم نیز ذخیره گردد که به آنها کاراکتر می گوییم. • برای ذخیره سازی کاراکترها به هریک از آنها یک کد عددی نسبت داده شده است و در حقیقت کد عددی هر کاراکتر در کامپیوتر ذخیره می گردد. • در گذشته پر کاربردترین کد مورد استفاده، کد ASCII بود که برای نمایش هر کاراکتر از یک بایت استفاده می کرد. از آنجا که هر بایت می تواند بین 0 تا 255 تغییر کند، بنابراین تا 256 کاراکتر قابل تعریف است. از این بین کدهای بین 0 تا 127 بصورت استاندارد برای علائم و حروف انگلیسی تعریف شده است و کدهای بالاتر از 127 برای هر کشور خالی گذاشته شده است تا بتوانند حروف خاص زبان خود را تعریف کنند. بعنوان مثال به کدهای ASCII زیر دقت کنید: A=65 B=66 C=67 … 0=48 1=49 … • اما امروزه و بدلیل ارتباطات گسترده جهانی از طریق اینترنت، نیاز به تعریف یک کد بین المللی می باشد که کلیه زبانهای جهانی را دربرگیرد. چراکه متنی که در کشور دیگری به زبان فارسی نوشته می شود باید در ایران هم قابل خواندن باشد و لازمه این مسئله یکسان بودن کدها است. • بهمین دلیل اخیرا کد بین المللی بنام Unicode ابداع شده است که تقریبا تمام زبانهای زنده دنیا (از جمله زبان فارسی) را دربر می گیرد. البته این کد از 2 بایت برای نمایش هر کاراکتر استفاده می کند و سیستم عاملهای جدید همگی از آن حمایت می کنند.

More Related