Assignment_2.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫ﺳﺎﺧﺘﺎر و زﺑﺎن ﮐﺎﻣﭙﯿﻮﺗﺮ‪ ،‬ﮔﺮوه ‪1‬‬
‫ﺗﻤﺮﯾﻦ ‪2‬‬
‫داﻧﺸﮑﺪة ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫داﻧﺸﮕﺎه ﺻﻨﻌﺘﯽ ﺷﺮﯾﻒ‬
‫ﻧﯿﻤﺴﺎل اول ‪85-86‬‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ‪1385/8/7 :‬‬
‫ﺳﺆﺍﻝ ‪ .۱‬ﺍﻋﺪﺍﺩ ﻣﻤﻴﺰ ﺷﻨﺎﻭﺭ‪ :‬ﺩﺭ ﻳﮏ ﮐﺎﻣﭙﻴﻮﺗﺮ ﺍﻋﺪﺍﺩ ﻣﻤﻴﺰ ﺷﻨﺎﻭﺭ ﺑﻪ ﺻﻮﺭﺕ ﺩﺍﺩﻩﻫﺎﻱ ‪ ۱۶‬ﺑﻴﺘﻲ ﺩﺭ ﻗﺎﻟﺐ ﺯﻳﺮ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ‬
‫‪13‬‬
‫‪31‬‬
‫‪significant‬‬
‫‪1‬‬
‫‪12‬‬
‫‪exponent‬‬
‫‪0‬‬
‫‪S‬‬
‫‪Bit # :‬‬
‫ﻣﻘﺪﺍﺭ ﻋﺪﺩ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﺷﺪﻩ ﺩﺭ ﻗﺎﻟﺐ ﻓﻮﻕ ﺍﺯ ﺭﺍﺑﻄﻪ ﺑﻪ ﺩﺳﺖ ﻣﻲﺁﻳﺪ‪:‬‬
‫) ‪( -1) S ´ (0.1significan d ) ´ 2 (exp onent +bias‬‬
‫ﺩﺭ ﺭﺍﺑﻄﻪ ﻣﺰﺑﻮﺭ‪:‬‬
‫‪ .۱‬ﻣﻨﻈﻮﺭ ﺍﺯ ‪ ، 1significand‬ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻳﮏ ﺑﻴﺖ ‪ 1‬ﻭ ﺳﭙﺲ ﺑﻴﺘﻬﺎﻱ ﻓﻴﻠﺪ ‪ significant‬ﺑﻪ ﺻﻮﺭﺕ ﻣﺘﻮﺍﻟﻲ ﺍﺳﺖ‪.‬‬
‫‪ .۲‬ﻣﻘﺪﺍﺭ ‪ bias‬ﺩﺭ ﺭﺍﺑﻄﻪ ﻓﻮﻕ ‪ ۲۰۴۸‬ﺍﺳﺖ‪.‬‬
‫‪ .۳‬ﻋﺪﺩ ﺻﻔﺮ ﺑﻪ ﺻﻮﺭﺕ ﺍﺳﺘﺜﻨﺎﻳﻲ ﺑﺎ ﻳﮏ ﺭﺷﺘﻪ ﺑﻴﺖ ‪ ۳۲‬ﺗﺎﻳﻲ ﺍﺯ ﺑﻴﺘﻬﺎﻱ ‪ 0‬ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻣﻲﺷﻮﺩ‪.‬‬
‫ﺑﻪ ﺳﺆﺍﻻﺕ ﺯﻳﺮ ﺩﺭ ﻣﻮﺭﺩ ﻧﻤﺎﻳﺶ ﻓﻮﻕ ﭘﺎﺳﺦ ﺩﻫﻴﺪ‪:‬‬
‫‪ (۱‬ﺍﻋﺪﺍﺩ ‪ ۱۱۲,۱۱*۱۰۳ ،۱۲۳,۴۴۳۴‬ﺩﺭ ﺍﻳﻦ ﺳﻴﺴﺘﻢ ﭼﮕﻮﻧﻪ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ؟‬
‫‪ (۲‬ﺑﺰﺭﮔﺘﺮﻳﻦ ﻭ ﮐﻮﭼﮑﺘﺮﻳﻦ ﻋﺪﺩ ﻣﺜﺒﺖ ﻧﺎﺻﻔﺮﻱ ﮐﻪ ﺩﺭ ﻧﻤﺎﻳﺶ ﻓﻮﻕ ﻣﻲﺗﻮﺍﻥ ﺩﺍﺷﺖ‪ ،‬ﭼﻪ ﻣﻘﺎﺩﻳﺮﻱ ﺩﺍﺭﻧﺪ؟‬
‫‪ (۳‬ﺩﺭ ﻫﺮﻳﮏ ﺍﺯ ﻗﻄﻌﻪ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﺯﻳﺮ ﺗﻤﺎﻡ ﺍﻋﺪﺍﺩ ﺍﻋﺸﺎﺭﻱ ﺍﺯ ﻧﻮﻉ ﺩﺍﺩﻩ ﻓﻮﻕ ﻫﺴﺘﻨﺪ‪ MIN_FLOAT .‬ﮐﻮﭼﮑﺘﺮﻳﻦ ﻋﺪﺩ‬
‫ﻣﺜﺒﺖ ﻧﺎﺻﻔﺮﻱ ﺍﺳﺖ ﮐﻪ ﺩﺭ ﻗﺎﻟﺐ ﻓﻮﻕ ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ ﺍﺳﺖ‪ .‬ﺩﺭ ﻫﺮ ﻗﻄﻌﻪ ﺑﺮﻧﺎﻣﻪ‪ ،‬ﻣﻘﺪﺍﺭ ﻣﺘﻐﻴﺮ ‪ op1‬ﺭﺍ ﭘﺲ ﺍﺯ ﺍﺟﺮﺍ‪ ،‬ﺑﻪ‬
‫ﺩﺳﺖ ﺁﻭﺭﻳﺪ‪ .‬ﺍﺯ ﻣﻘﺎﻳﺴﻪ ﻣﻘﺎﺩﻳﺮ ﺑﻪ ﺩﺳﺖ ﺁﻣﺪﻩ ﭼﻪ ﻧﺘﻴﺠﻪ ﺍﻱ ﻣﻲﮔﻴﺮﻳﺪ؟‬
‫;‪1. op1 = 1.0‬‬
‫)‪for (int i=0; i < 1024; i++‬‬
‫;‪op1 += MIN_FLOAT‬‬
‫;‪2. op1 = 1.0‬‬
‫;‪op2 = 0‬‬
‫)‪for (int i=0; i < 1024; i++‬‬
‫;‪op2 += MIN_FLOAT‬‬
‫;‪op1 += op2‬‬
‫‪ (۴‬ﺑﺰﺭﮔﺘﺮﻳﻦ ﻋﺪﺩ ﻧﺎﺻﻔﺮﻱ ﮐﻪ ﺩﺭ ﻗﺎﻟﺐ ﻓﻮﻕ ﻗﺎﺑﻞ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺑﺎﺷﺪ ﻭ ﺩﺭ ﺻﻮﺭﺕ ﺟﻤﻊ ﺷﺪﻥ ﺑﺎ ‪ 1.0‬ﺣﺎﺻﻞ ﻫﻤﭽﻨﺎﻥ‬
‫‪ 1.0‬ﺑﺎﺷﺪ‪ ،‬ﭼﻪ ﻋﺪﺩﻱ ﺍﺳﺖ؟‬
‫ﺳﺆﺍﻝ ‪ .۲‬ﻛﺪ ‪ :BCD‬ﻣﻜﻤﻞ ‪ ۱۰‬ﻳﻚ ﻋﺪﺩ ‪ BCD‬ﻣﺎﻧﻨﺪ ‪ N‬ﺭﺍ ﭼﮕﻮﻧﻪ ﻣﻲﻧﻮﺍﻥ ﻣﺤﺎﺳﺒﻪ ﻛﺮﺩ‪) .‬ﻣﺜﺎﻝ ﺑﺰﻧﻴﺪ(‬
‫ﺳﺆﺍﻝ ‪ .۳‬ﻛﺪ ‪ :BCD‬ﻣﻜﻤﻞ ‪ ۹‬ﻳﻚ ﻋﺪﺩ ‪ BCD excess 3‬ﭼﮕﻮﻧﻪ ﻣﺤﺎﺳﺒﻪ ﻣﻲﺷﻮﺩ‪) .‬ﻣﺜﺎﻝ ﺑﺰﻧﻴﺪ(‬