1.Дослідження представлення в пам’яті комп’ютера змінної типу char. Значення змінної типу char записується в пам’яті комп’ютера у формі ASCII-коду символа.Якщо змінній типу char присвоїти значення символа „Ч”, то у пам’ять запищеться 97, що відповідає ASCII-коду символа „Ч”. 1 байт Очікуваний результат 97 Результат виконання програми 97 Представлення в пам’яті комп’ютера 1001 0111 2. Дослідження представлення в пам’яті комп’ютера змінної типу short int. 3250|16 203|16 3250=CB2 16 203 16 12 050 43 48 32 2 11 1 байт 2 байт Очікуваний результат B2 0C Результат виконання програми B2 0C Представлення в пам’яті комп’ютера 1011 0010 1010 0010 3. Дослідження представлення в пам’яті комп’ютера змінної типу int. -3250= -CB2 0000 0000 0000 0000 0000 1100 1011 0010 – прямий код; 1111 1111 1111 1111 1111 0011 0100 1101 – обернений код; 1111 1111 1111 1111 1111 0011 0100 1110 – доповняльний код. 1 байт 2 байт 3 байт 4 байт Очікуваний результат 4E F3 FF FF Результат виконання програми 4E F3 FF FF Представлення в пам’яті комп’ютера 0100 1110 1111 0011 1111 1111 1111 1111 В пам’яті комп’ютера 4E F3 FF FF. 4. Дослідження представлення в пам’яті комп’ютера змінної типу float. 11.1984=B.32CA57=1011.001100101100101001010 0.1984 0.1744 0.7904 0.6464 0.3424 0.4784 0.6544 0.4704 16 16 16 16 16 16 16 16 3.1744 2.7904 12.6464 10.3424 5.4784 7.6544 10.4704 7.5264 7F+3=82 0. 10000010 01100110010110010100101 надлишкова 1 байт 2 байт 3 байт 4 байт Очікуваний результат A5 2C 33 41 Результат виконання програми A5 2C 33 41 Представлення в пам’яті комп’ютера 1010 0101 0011 1100 0011 0011 0100 0001 5. Дослідження представлення в пам’яті комп’ютера змінної типу double. -1399.8= -577.(C)= -0101 0111 0111.(1100) 1399|16 87|16 0.8 128 87 80 5 16 119 7 12.8 112 7 3FF+A=409 1 100 0000 1001 0101 1101 1111 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 надлишкова 1 байт 2 байт 3 байт 4 байт 5 байт 6 байт 7 байт 8 байт ОP 33 33 33 33 33 ВА 95 С0 РВП 33 33 33 33 33 ВА 95 С0 ППК 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 1011 1010 1001 0101 1100 0000 6. Дослідження представлення в пам’яті комп’ютера змінної типу long double. 1399.8= 577.(C)= 0101 0111 0111.(1100) 3FFF+A=4009 0 100000000001001 1 010111011111001100110011001100110011001100110011001100110011001 1 0 100000000001001 1 010111011111001100110011001100110011001100110011001100110011010 1 байт 2 байт 3 байт 4 байт 5 байт 6 байт 7 байт 8 байт 9 байт 10 байт ОP 9A 99 99 99 99 99 F9 AE 09 40 РВП 9A 99 99 99 99 99 F9 AE 09 40 ППК 1001 1010 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1111 1001 1010 1110 0000 1001 0100 0000 7. Дослідження представлення в пам’яті комп’ютера змінної рядкового типу. Рядок представляється в пам’яті комп’ютера як послідовність ASCII-кодів символів, що є у ньому.В кінці додається символ з ASCII-кодом 00. ‘Ч’ – 97, ‘е’ – А5, ‘м’ – АС, ‘е’ – А5, ‘р’ – Е0, ‘и’ – А8, ‘с’ – Е1 ‘\0’ – 00. 1 байт 2 байт 3 байт 4 байт 5 байт 6 байт 7 байт 8 байт ОP 97 A5 AC A5 E0 A8 E1 00 РВП 97 A5 AC A5 E0 A8 E1 00 ППК 1001 0111 1001 0101 1001 1100 1001 0101 1110 0000 1010 1001 1110 0001 0000 0000 8. Дослідження представлення в пам’яті комп’ютера змінної перелічуваного типу. Значенню змінної перелічуваного типу в пам’яті комп’ютера відповідає порядковий номер (починаючи з 0) заданої змінної у списку ідентифікаторів, задані при описі типу. enum{Chemerys,Yurij,Anatolijovich}pe=Yurij; ре у пам’яті комп’ютера представляється як 01. 1 байт Очікуваний результат 01 Результат виконання програми 01 Представлення в пам’яті комп’ютера 0000 0001 9. Дослідження представлення в пам’яті комп’ютера масивa змінних типу char. Масив змінних типу char представляється в пам’яті комп’ютера як послідовність ASCII-кодів символів,що входять в цей масив.Багатовимірний масив зберігається так, що найбільш правий індекс збільшується першим. Масив ‘2’ ‘3’ ‘0’ ‘3’ ‘0’ в пам’яті збережеться так: ‘0’ ‘2’ ‘0’ ‘1’ ‘6’ 32 33 30 33 30 30 32 30 31 36 = 11001100110011001100000011001100110000001100000011001000110000 1 байт 2 байт 3 байт 4 байт 5 байт 6 байт 7 байт 8 байт 9 байт 10 байт ОP 32 33 30 33 30 30 32 30 31 36 РВП 32 33 30 33 30 30 32 30 31 36 ППК 0011 0010 0011 0011 0011 0000 0011 0011 0011 0000 0011 0000 0011 0010 0011 0000 0011 0001 0011 0110 10. Дослідження представлення в пам’яті комп’ютера записів. Запис struct{char a1[15], a2[15],b1,b2,b3; short int c1,c2;} rec={"Львів","Світла",',',',','/',6,9}; буде виглядати так: 8B EC A2 F7 A2 00 00 00 00 00 00 00 00 00 00 91 A2 F7 E2 AB A0 00 00 00 00 00 00 00 00 00 2C 2C 2F 00 06 00 09 00 1000 1011 1110 1100 1010 0010 1111 0111 1010 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 1000 1101 0001 0111 1011 1111 0001 0101 0101 1101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1100 0010 1100 0010 1111 0000 0000 0000 0110 0000 0000 0000 1001 0000 0000 34-ий байт порожній тому, що значення змінних типу short int записуються починаючи з парних адрес. 1 байт 2 байт 3 байт 4 байт 5 байт 6 байт 7 байт 8 байт 9 байт 10 байт ОР 8B EC A2 F7 A2 00 00 00 00 00 РВП 8B EC A2 F7 A2 00 00 00 00 00 ППК 1000 1011 1110 1100 1010 0010 1111 0111 1010 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 11 байт 12 байт 13 байт 14 байт 15 байт 16 байт 17 байт 18 байт 19 байт 20 байт ОР 00 00 00 00 00 91 A2 F7 E2 AB РВП 00 00 00 00 00 91 A2 F7 E2 AB ППК 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1001 0001 1010 0010 1111 0111 1110 0010 1010 1011 21 байт 22 байт 23 байт 24 байт 25 байт 26 байт 27 байт 28 байт 29 байт 30 байт ОР A0 00 00 00 00 00 00 00 00 00 РВП A0 00 00 00 00 00 00 00 00 00 ППК 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 31 байт 32 байт 33 байт 34 байт 35 байт 36 байт 37 байт 38 байт ОР 2C 2C 2F 00 06 00 09 00 РВП 2C 2C 2F 00 06 00 09 00 ППК 0010 1100 0010 1100 0010 1111 0000 0000 0000 0110 0000 0000 0000 1001 0000 0000 11. Дослідження текстового файлу. Записавши у файл два рядка "Chemerys Anatolij Oleksijovich\n" і Chemerys Oksana Matvijivna" у фалі отримаємо наступну послідовність ASCII-кодів: 43-‘C’ 68-‘h’ 65-‘e’ 6D-‘m’ 65-‘e’ 72-‘r’ 79-‘y’ 73-‘s’ 20-‘ ‘ 41-‘A’ 6E-‘n’ 61-‘a’ 74-‘t’ 6F-‘o’ 6C-‘l’ 69-‘i’ 6A-‘j’ 20-‘ ‘ 4F-‘O’ 6C-‘l’ 65-‘e’ 6B-‘k’ 73-‘s’ 69-‘i’ 6A-‘j’ 6F-‘o’ 76-‘v’ 69-’i’ 63-‘c’ 68-‘h’ 0D-повернення каретки 0A-перевід рядка 43-‘C’ 68-‘h’ 65-‘e’ 6D-‘m’ 65-‘e’ 72-‘r’ 79-‘y’ 73-‘s’ 20-‘ ‘ 4F-‘O’ 6B-‘k’ 73-‘s’ 61-‘a’ 6E-‘n’ 61-‘a’ 20-‘ ’ 4D-‘M’ 61-‘a’ 74-‘t’ 76-‘v’ 69-‘i’ 6A-‘j’ 69-‘i’ 76-‘v’ 6E-‘n’ 61-‘a’ 1A-EOF #include<stdio.h> struct{char a1[15], a2[15],b1,b2,b3; short int c1,c2;} rec={"‹ì¢÷¢","‘¢÷â« ",',',',','/',6,9}; main() {int i; short int a=3250; int al=-3250; float f=11.1984; double d=-1399.8; long double ld=1399.8l; char c,ch='—',*str="—¥¬¥à¨á"; FILE *fl; unsigned char *p; enum{Chemerys,Yurij,Anatolijovich}pe=Yurij; char m[2][5]={{'2','3','0','3','0'}, {'0','2','0','1','6'}}; printf("Choose type:\n 1 - char\n 2 - short integer\n 3 - integer\n 4 - float\n 5 - double\n 6 - long double\n 7 - string\n 8 - enumerated\n 9 - array\n A - record\n B - file\n 0 - exit\n"); do{ c=getchar();if(c!='\n')getchar(); switch (c) {case '1':p=&ch; if (*p>0x9)printf("%x\n",*p); else printf("0%x\n",*p);break; case '2':p=&a; for(i=0;i<2;i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i));printf("\n");break; case '3':p=&al; for(i=0;i<4;i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i));printf("\n");break; case '4':p=&f; for(i=0;i<4;i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i));printf("\n");break; case '5':p=&d; for(i=0;i<8;i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i));printf("\n");break; case '6':p=&ld; for(i=0;i<10;i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i));printf("\n");break; case '7':p=str; for(i=0;*(p+i-1)!=0;i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i));printf("\n");break; case '8':p=&pe; if (*p>0x9)printf("%x\n",*p); else printf("0%x\n",*p);break; case '9':p=m; for(i=0;i<10;i++) printf("%x ",*(p+i));printf("\n");break; case 'A':; case 'a':p=&rec; for(i=0;i<sizeof(rec);i++) if (*(p+i)>0xf)printf("%x ",*(p+i)); else printf("0%x ",*(p+i)); printf("\n");break; case 'B':; case 'b':fl=fopen("mycfile","w"); fputs("Chemerys Anatolij Oleksijovich\n",fl); fputs("Chemerys Oksana Matvijivna",fl); printf("File was made\n");break; default:printf("Choose type:\n 1 - char\n 2 - short integer\n 3 - integer\n 4 - float\n 5 - double\n 6 - long double\n 7 - string\n 8 - enumerated\n 9 - array\n A - record\n B - file\n 0 - exit\n"); }}while(c!='0'); }