Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОЖ.doc
Скачиваний:
26
Добавлен:
06.03.2016
Размер:
600.58 Кб
Скачать

Вариант 24

1. а) 744(10); б) 554(10); в) 269,375(10); г) 120,25(10); д) 139,09(10).

2. а) 101000001(2); б) 1110111100(2); в) 1001110101,011001(2); г) 1000010001,00011(2); д) 1177,6(8); е) 3FA,E8(16).

3. а) 10000001010(2)+11111111(2); б) 111011000(2)+1110111(2); в) 111010101,101(2)+11101111,001(2); г) 251,42(8)+72,54(8); д) 2CF,A(16)+242,4(16).

4. а) 1001000100(2) – 100111010(2); б) 100001100(2) – 10110011(2); в) 1110111100,011(2) – 1100000011,0111(2); г) 1700,2(8) – 456,44(8); д) 1A1,8(16) – E0,7(16).

5. а) 11110(2)  1100100(2); б) 1034,6(8)  43,1(8); в) 2C,4(16)  6,2(16).

Вариант 25

1. а) 686(10); б) 585(10); в) 530,6875(10); г) 87,375(10); д) 131,82(10).

2. а) 110111001(2); б) 101111011(2); в) 1110111100,1(2); г) 110000011,0111(2); д) 742,34(8); е) 396,A(16).

3. а) 10000010001(2)+1000100010(2); б) 101011100(2)+10101111(2); в) 1001110000,001(2)+10100101,011(2); г) 1216,2(8)+2012,4(8); д) 372,18(16)+251,38(16).

4. а) 100110110(2) – 11101001(2); б) 1010100111(2) – 110000010(2); в) 11001101,1011(2) – 1001101,011(2); г) 1254,2(8) – 1150,54(8); д) 2E1,8(16) – 19A,4(16).

5. а) 1101000(2)  10011(2); б) 1411,44(8)  46,4(8); в) 63,8(16)  8,6(16).

Такырып №2

Тақырып: Сандық ақпаратты көрсету формалары

  • Бекітілген үтірлі (нүктелі) сандарды көрсету.

  • Сандарды жылжымалы үтірлі формада көрсету.

  • Теріс сандарды көрсету.

  • Сандық ақпаратты көрсету қателіктері.

Қысқаша мәлімет

(ЭЕМ жадысында мәліметтерді көрсету)

 

ЭЕМ эжадысында мәліметтерді көрсету үшін кодтаудың екілік тәсілі (сандық ақпарат үшін де, сандық емес үшін де) қолданылады. ЭЕМ жадысының элементар ұяшығы 8 байт ұзындыққа ие. Әр байттың өзінің нөмірі бар (оны адрес деп атайды). ЭЕМ бір бүтін ретінде өңдей алатын ең үлкен бит тізбегін машиналық сөз деп атайды. Машиналық сөздің ұзындығы процессордың разрядтылығына байланысты болады және 16,32 және т.с.с. битке тең болуы мүмкін.

Символдарды кодтау үшін 1 байт жеткілікті. Мұнда 256 символ көрсетуге болады. ЭЕМ IBM PC дербес компьютерлеріндегі символдар жиынтығы көбінесе ASCII (American Standard Code for Information Interchange — ақпарат алмасуға арналған стандарты американдық код) кеңейтілуі бар код болады

ЭЕМ жадысында сандарды көрсету кезінде кей жағдайларда аралас екілік-ондық санау жүйесі қолданылады, мұндағы әрбір ондық таңбаны сақтау үшін жартыбайт (4 бит) қажет болады және 0-ден 9-ға дейінгі ондық сандар сәйкесінше 0000-ден 1001-ге дейінгі екілік сандармен көрсетіледі. Мысалы, 18 мәндік цифрлары бар бүтін санды сақтауға арналған және жадыда 10 байт (үлкені таңбалық) орын алатын капталған ондық формат осы нұсқаны қолданады.

Сандарды көрсетудің басқа тәсілі – қосымша код. Шамалардың мәндерінің диапазоны оларды сақтауға бөлінген жады биттерінің санына тәуелді. Мысалы, Integer типті шамалар –32768 (–215)-нан 32767 (215 – 1)-ға дейінгі диапазонда жатады және оларды сақтауға 2 байт жұмсалады; LongInt типті шама –231 –ден 231 – 1-ге дейінгі диапазонда жатады; Word типті — 0-ден 65535 (216 – 1)-ге дейінгі диапазонжа жатады және т.с.с.

Мысалдардан көріп отырғандай мәліметтер таңбалы және таңбасыз сандар ретінде келтіріледі. Таңбалы шаманы көрсету кезінде сол жағындағы (ең үлкен) разряд 0-ге тең болса, оң санды көрсетеді, 1-ге тең болса, теріс санды көрсетеді.

Жалпы разрядтар 0-ден бастап оңнан солға қарай нөмірленеді. Төменде екі байты машиналық сөздегі нөмірлеу келтірілген.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оң санның қосымша коды оның тура кодына сәйкес келеді. Бүтін санның тура коды келесі түрде алынады: сан екілік санау жүйесіне аударылады, содан кейін оның екілік жазбасын сан жататын мәліметтер типі талап ететін 0-дер санымен толықтырылады. Мысалы, егер 37(10) = 100101(2 саны Integer типінің шамасы ретінде жарияланса, оның тура коды 0000000000100101 болады, ал егер 37(10) = 100101(2) саны LongInt типі ретінде жарияланса, онда оның тура коды 00000000000000000000000000100101 болады. Неғұрлым шағын жазба үшін оналтылық кодты жиі қолданады. Алныған кодтарды сәйкесінше 0025(16) и 00000025(16) деп жазуға болады.

Бүтін теріс санның қосымша кодын келесі алгоритммен алуға боолады:

1) санның модулінің тура кодын жазу керек;

2) оны инверттеу (нольдерді бірліктермен, ал бірліктерді нольдермен ауыстыру);

3) инверстік кодқа бірлікті қосу.

Мысалы, (–37) санының қосымша кодын LongInt типті шама ретінде алып жазамыз.

1) 37 санының тура коды 00000000000000000000000000100101 болады;

2) инверттік коды 11111111111111111111111111011010;

3) қосымша коды 11111111111111111111111111011011 немесе FFFFFFDB(16).

Санды оның қосымша коды арқылы алу үшін ең алдымен оның таңбасын анықтап алу қажет. Егер сан оң сан болса, онда оның кодын тек ондық санау жүйесіне аудару қажет болады. Теріс сан болған жағдайда келесі алгоритмді орындау қажет:

1) санның кодынан 1-ді азайту;

2) кодты инверттеу;

3) ондық санау жүйесіне аудару. Алынған санды теріс таңбамен жазу.

 

Мысалдар. Қосымша кодтарға сәйкес келетін сандарды жазайық:

а) 0000000000010111. Үлкен разрядта ноль жазылғандықтан нәтиже оң болады. Бұл 23 санының коды.

б) 1111111111000000. Мұнда теріс санның коды жазылған. Алгоритмді орындаймыз:

1) 1111111111000000(2) – 1(2) = 1111111110111111(2);

2) 0000000001000000; 3) 1000000(2) = 64(10).

Жауап: –64.

Дербес компьютердің жадысында нақты сандарды көрсету үшін басқадай тәсіл қолданылады. Жылжымалы үтірлі шамаларды көрсетуді қарастырамыз:

Кез-келген нақты санды M  10p, где 1  M < 10 стандартты түрде жазуға болады, мұндағы 1  M < 10, p — бүтін. Мысалы, 120100000 = 1,201  108. Ондық санның әр позицицясы көршісінен 10 санының дәрежелеріндей айырмашылығы болатындықтан, 10-ға көбейту ондық үтірді бір позиция оңға жылжытуға эквивалентті. Осылайша 10-ға бөлу ондық үтірді бір позиция солға жылжытуға пара-пар. Сондықтан жоғарыда келтірілген мысалды жалғастыруға болады. 120100000 = 1,201  108 = 0,1201  109 = 12,01  107. Ондық үтір санда «жылжиды» және санның бүтін және бөлшек бөліктеріндегі абсолютті орны белгіленбеген.

Жоғарыда келтірілген жазбада М-ді санның матиссасы деп, ал p – оның реті деп аталады. Максималды дәлдікті сақтау үшін есептеуіш машиналар мантиссаны үнемі дерлік нормальданған түрде сақтайды, бұл мантисса осы жағдайда 1(10) и 2(10) (1  M < 2).. аралығында жататын сан дегенді білдіреді. Мұнда санау жүйесінің негізі 2 саны. Жылжымалы үтірлі мантиссаны сақтау тәсілі екілік үтірдің бекітілген орында тұрғанын білдіреді. Шын мәнісінде екілік үтір бірінші екілік цифрдан кейін тұрады, яғни, мантиссаны нормальдау бірінші битті жалғыздайды, осымен мәнді 1 мен 2-нің аралығына орналастырады. Жылжымалы нүктелі санға берілген орын екі өріске бөлінеді. Бір өріс мантиссаның таңбасы мен мәнінен тұрады, келесісі ретінің таңбасы мен мәнінен түрады.

Математикалық соопроцессоры бар IBM PC дербес компьютері келесі нақты сандармен жұмыс істеуге мүмкіндік береді (мәндердің диапазоны абсолютті шама бойынша көрсетілген):

Типі

Диапазоны

Мантиссасы

Байттар

Real

2,9  10–39..1,7  1038

11–12

6

Single

1,5  10–45..3,4  1038

7–8

4

Double

5,0  10–324..1,7  10308

15–16

8

Extended

3,4  10–4932..1,1  104932

19–20

10

Нақты сандардың ЭЕМ жадысында көрсетілуіне арналған түрлендірулерін Double типті шаманың мысалында көрейік.

Кестеде көрініп тұрғандай, осы типтің шамасы жадыдан 8 байт орын алады. Суретте мантиссаның және реттің өрістерінің көрсетілуі берілген:

S

Аралас рет

Мантисса

63

52

0

Мантиссаға берілген үлкен бит 51-ші нөмір екенін, яғни мантисса 52 биттің кішілерін алады. Сызықша екілік үтірдің орнын көрсетеді. Үтірдің алдында мантиссаның бүтін бөлігінің биті түруы қажет, бірақ ол үнемі 1-ге тең болғандықтан бұл жерде осы бит қажет емес және сәйкесінше жадыда жоқ (бірақ ол ойда). Реттің мәні бұл жерде қосымша кодпен көрсетілген бүтін сан ретінде сақталмайды. Есептеулерді оңайлату және нақты сандарды салыстыру үшін реттің мәні ЭЕМ-де аралас сан ретінде сақталады, яғни, реттің осы мәніне оның жадыға жазылар алдында жылжу қосылады. Жылжу реттің минимальды мәніне ноль сәйкес келетіндей болып таңдалынады. Мысалы, Double типі үшін рет 11 бит орын алады және 2–1023-ден 21023-ге дейінгі диапазонға ие, сондықтан жылжу 1023(10) = 1111111111(2)-ге тең. Сонымен, 63 номерлі бит санның таңбасын кқрсетеді.

Осылайша, жоғарыда айтылғандардан ЭЕМ жадысында нақты сандарды көрсетуді алудың келесі алгоритмі туындайды:

1) берілген санның содулін екілік санау жүйесіне аудару;

2) екілік санды нормальдау, яғни M  2p,түрінде жазу, мұндағы M — мантисса (оның бүтін бөлігі 1(2)-ге тең) және p —ондық санау жүйесінде жазылған рет;

3) жылжу ретіне қосу және жылжытылған ретті екілік санау жүйесіне аудару;

4) берілген санның таңбасын (0 — оң; 1 — теріс) ескере отырып, оның ЭЕМ жадысында көрсетілуін жазу.

Мысал. –312,3125 санының кодын жаз.

1) Осы санның модулінің екілік жазбасы: 100111000,0101.

2) 100111000,0101 = 1,001110000101  28.

3) аралас рет аламыз 8 + 1023 = 1031. Осыдан, 1031(10) = 10000000111(2).

4) Соңғысы

1

10000000111

0011100001010000000000000000000000000000000000000000

63

52

0

Әрине алынған кодты неғұрлым шағын түрде келесідей жазуға болады: C073850000000000(16).

Келесі мысал нақты санның кодынан керісінше санның өзіне өтуді қарастырады.

Мысал. Айталық, келесі код берілсін: 3FEC600000000000(16) немесе

0

01111111110

1100011000000000000000000000000000000000000000000000

63

52

0

1) Алдымен оның оң санның коды екенін байқаймыз, себебі 63 нөмірлі разрядта ноль жазылған. Осы санның ретін алайық: 01111111110(2) = 1022(10); 1022 – 1023 = –1.

2) сан мына түрге ие: 1,1100011  2–1 немесе 0,11100011.

3) ондық санау жүйесіне аударып, келесіні аламыз: 0,88671875.

 

Зертханалық жұмыстарға тапсырма:

 1. Берілген санды ондық жүйеден ондық-екілік жүйеге аудар.

2. Берілген санды екілік-ондық жүйеден ондық жүйеге аудар.

3. Берілген мәтінді ASCII кодтар кестесін пайдаланып шифрла.

4. Осы мәтінді ASCII кодтар кестесін пайдаланып дешифрла.

5. Санның тура кодын оны таңбасыз сегізбайтты бүтін сан ретінде жазыңыз..

6. Санның қосымша кодын оны таңбалы сегізбайтты бүтін сан ретінде жазыңыз.

7. Санның тура кодын оны таңбасыз оналтыбайтты бүтін сан ретінде жазыңыз.

8. Санның қосымша кодын оны таңбалы оналтыбайтты бүтін сан ретінде жазыңыз.

9. Санды оның берілген қосымша коды арқылы ондық санау жүйесінде бүтін сан ретінде жазыңыз.

10. Нақты санның кодын Double типті шама ретінде көрсетіп жазыңыз.

11. Double типті шама коды берілген. Оны санға айналдырыңыз.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]