Материали по информатика и ИТ за начинаещи (и не само)
на Румяна Недкова Жекова от МГ'Баба Тонка'
(01.09.1983 г до дата на последната актуализация: 05.11.2021 г)
Мнения и препоръки очаквам на адрес: RNGEKOVA@abv.bg
RNGekova.sne-bg.com – задачи и помощни материали по информатика и ИТ
Жекова

Представяне на данните в паметта на компютъра

Всеки компонент се характеризира с име, тип и стойност. Типът на данните определя:
1.колко памет заемат
2.как трябва да се разчитат
3.какви операции могат да се извършват с тях.

> единични типове данни
. o стандартни
. . • цели числа
. . • дробни числа с плаваща десетична точка
. . • дробни числа с фиксирана десетична точка
. . • знак (символ)
. . • логически данни
. o дефинирани данни
. . • изброен тип
> съставни типове данни (структурирани)
. o статични данни
. . • еднотипни данни
. . • разнотипни данни
. o Динамични данни

1.Представяне на целите числа в паметта на компютъра
а)положителни числа – прав код
30000 0011(2) 03(16)прав код

б)обратен код
31111 1100(2) FC(16)обратен код
1111 1100(2) FC(16)
в)отрицателни числа – допълнителен код
-31111 1101(2) FD(16)допълнителен код

30000 0011(2) 03(16)прав код
31111 1100(2) FC(16)обратен код
+ . . . . . .1(2) +1(16)
-31111 1101(2) FD(16)допълнителен код

Ако се съберат числата се получава единица пренос в допълнителен разряд, за който няма място в байта – тоест сумата от записите на двете числа от по 1 байт е 256.
30000 0011(2) 03(16)прав код
-31111 1101(2) FD(16)допълнителен
256=01 0000 0000(2) 1 00(16)

За да се получи допълнителния код на едно число, може да се извади от нула положителното число (с 1 заем от по-старши разряд).
256=01 0000 0000(2) 1 00(16)
860101 1100(2) 56(16)прав код
-861010 0100(2) A4(16)допълнителен

2.Разновидности и обхват
Обем паметКлетка без знак Клетка със знак
1 B
(1 Byte)
Всички битове (8 bits) са за числовата стойност
Най-малко число 0
Най-голямо число 1111 1111(2)
Тоест числата са в интервала
[0000 0000(2);1111 1111(2)]
[00(16); FF(16)]
[0(10); 255(10)]
256 различни стойности с положителен знак
От 8 bits за знака се отделя 1 bit, а останалите 7 bits са за числовата стойност
256 различни стойности
128 стойности със знак + и 128 броя със знак –
Положителните числа са от 0 до 127
Отрицателните числа са от -1 до -128
[...; 0111 1111(2)]
[...; 7F(16)]
[-128(10); 127(10)]
2 B
(2 Bytes)
Всички битове (16 bits) са за числовата стойност
Най-малко число 0
Най-голямо число
1111 1111 1111 1111(2)(2)
Тоест числата са в интервала
[00 00 (16); FF FF(16)]
[0(10); 65535(10)]
65536 различни стойности с положителен знак
От 16 bits за знак се отделя 1 bit, а останалите 15 bits са за числовата стойност
65536 различни стойности
32768 стойности със знак + и 32768 броя със знак –
Положителните числа са от 0 до 32767
Отрицателните числа са от -1 до -32768
[...; 0111 1111 1111 1111(2)]
[...; 7F FF(16)]
[-32 768(10); 32 767(10)]
4 B
(4 Bytes)
Всички битове (32 bits) са за числовата стойност
Най-малко число 0
Най-голямо число
1111 1111 1111 1111 1111 1111 1111 1111(2)
Тоест числата са в интервала
[00 00 00 00(16); FF FF FF FF(16)]
[0(10); 4 294 967 295(10)]
4 294 967 296 различни стойности с положителен знак
От 32 bits за знак се отделя 1 bit, а останалите 31 bits са за числовата стойност
4 294 967 296 различни стойности
2 147 483 648 стойности със знак + и 2 147 483 648 броя със знак –
Положителните числа са от 0 до 2 147 483 647
Отрицателните числа са от -1 до -2 147 483 648
[...; 0111 1111 1111 1111 1111 1111 1111 1111(2)]
[...; 7F FF FF FF(16)]
[-2 147 483 648(10); 2 147 483 647(10)]
8 B
(8 Bytes)
За да се направи справка какво е съдържанието на един байт (няколко общи последователни байта), трябва първо да се знае клетката дали е със или без знак.
Пример 1. Нека в една клетка от 1 байт има записано числото А7(16) = 10100111(2).
Ако тя е беззнакова, то в клетката е записано положителното число 10.16+7=167, защото всички битове са използвани за запис на самото число.
Ако тя е със знак, то първо трябва да се определи знака на числото, което клетката съдържа. Знаковият бит (първият бит – най-старшият) в случая е 1 /А7(16)=10100111(2)/. Това означава, че числото е отрицателно. Следователно записаното в клетката число е -89 (256-167=89).
256=01 0000 0000(2) 1 00(16)
1671010 0111(2) A7(16)
891010 1001(2) 59(16)
Пример 2. Нека в една клетка от 1 байт има записано числото 7А(16) = 01111010(2).
Ако тя е беззнакова, то в клетката е записано положителното число 7.16+10=122, защото всички битове са използвани за запис на самото число.
Ако тя е със знак, то знакът на числото е положително, защото знаковият бит (първият бит – най-старшият) в случая е 0 /7А(16)=01111010(2)/. Следователно записаното в клетката число е 122.

2.Представяне на реалните числа с плаваща десетична точка в паметта на компютъра
Реалното число се записва в клетка от паметта на компютъра, която се разделя на две части – за мантиса и за порядък (експонента) и всяка от тези две части може да има знак. Мантисата е числото преди символа Е (е), а порядък (експонента) е числото след този символ.
-12.34 Е +5
мантиса порядък/експонента
Самото число с такъв запис е равно на мантисата, умножена с 10 на степен порядъка. Тоест
-12.34Е+5 = 12.34*105- = -1234000.
-12.34e-3 = -12.34*10-3 = -0.01234
Ясно е, че порядъкът трябва да бъде цяло число, а мястото за мантисата задава колко значещи цифри може да има числото, записано в паметта на компютъра. Значещите цифри се определят от първата и последната цифри, които са различни от нула.
Числото 1024 има 4 значещи цифри, a числото 1000=1е3 има 1 значеща цифра. Затова, ако в мястото за мантисата има място само за 3 цифри, 1024 ще бъде записано в паметта закръглено – като 1020=1.02е3
Разновидности – числата в паметта се различат по количеството място (Bytes), което заемат и по количеството място (Bits), което се отделя за всяка от двете части.

3.Представяне на реалните числа с фиксирана десетична точка в паметта на компютъра

4.Представяне на символ в паметта на компютъра
Данните от тип символ се заграждат с единични кавички. За стойност се счита кодът на символа между кавичките - ASCII(American Standard Code for Information Interchange), ANSI (American National Standards Institute) или Unicode.Затова символите могат да се разглеждат и като разновидност на целочислените константи.
ASCII код (American Standard Code for Information Interchange)
Примери: 'A' 'D' 'Ж' '7' '/' '#'
За да се запише някой от символите ', ”, \ и други специални константи, се използва допълнителен символ обратна наклонена черта \.
Примери: '\'' '\t' '\\' '\n' '\t' '\b' '\a'
Символите се записват в 1 Byte = 8 bits и затова е възможно да се използват 256 различни символа – с код от 0 до 255.
Символите с код от 0 до 31 са служебни символи. Тяхното изписване задава компютърно действие или са кодове на някои специални клавиши.
Примери:
7 задава звук (Beep)
8 е код на клавиша Back space
9 е код на клавиша Tab
13 е код на клавиша Enter
27 е код на клавиша Esc
Клавишите стрелки, функционалните клавиши (F) и други предават на компютъра два кода, първият от коите е 0.
Примери:
0, 71 – клавишът Home
0, 72 – клавишът ^
0, 73 – клавишът Page Up
0, 75 – клавишът <
0, 77 – клавишът >
0, 79 – клавишът End
0, 80 – клавишът v
0, 81 – клавишът Page Dn
0, 82 – клавишът Insert
0, 83 – клавишът Del
0, 59 – клавишът F1
0, 60 – клавишът F2
0, 61 – клавишът F3
0, 62 – клавишът F4
0, 63 – клавишът F5
0, 64 – клавишът F6
0, 65 – клавишът F7
0, 66 – клавишът F8
0, 67 – клавишът F9
0, 68 – клавишът F10
Символите с код от 32 до 255 имат само екранно изображение. Кодовата таблица може да се променя за символите с код от 128 до 255.
Примери:
32 е код на ' '
65 е код на 'A' (латиница)
66 е код на 'B' (латиница)
97=65+32 е код на 'a' (латиница)
98=66+32 е код на 'b'
48=30(16) е код на '0' (нула)
49=31(16) е код на '1'
UniCode

5.Представяне на логически данни в паметта на компютъра
Данните от логически тип се записват в 1 байт като стойност 0 (0000 0000) или 1 (0000 0001).