160 likes | 330 Views
Представление информации в памяти компьютера. Кодирование символов. 1 символ – 1 байт (8 бит) Найти количество различных символов, закодированных байтами в сообщении. 1011100011100111101110001001111100111001 Разбиваем на байты 10111000.11100111.10111000.10011111. 00111001
E N D
Представление информации в памяти компьютера
Кодирование символов • 1 символ – 1 байт (8 бит) Найти количество различных символов, закодированных байтами в сообщении. 1011100011100111101110001001111100111001 Разбиваем на байты 10111000.11100111.10111000.10011111. 00111001 Исключаем повторяющиеся 10111000 Различных 4 символа.
Кодирование графики • Объем графического изображения V=n*i, где n –количество пикселей, i- количество бит на 1 пиксель.
Кодирование звука • Объем звукового файла равен V=t*i*λ, где t –время звучания файла, i- количество бит на 1 звук, λ – частота измерения звука.
Кодирование положительных целых чисел Целые положительные числа хранятся в дополнительном коде
Кодирование целых положительных чисел • 1. перевод в 2 с.с • 2. запись в ячейках памяти Пример: Представить число 1607 в памяти ПК в 2-х байтовом формате. 160710=110010001112 0000011001000111 – прямой код
Кодирование положительных целых чисел Прямой код положительного числа равен двоичному представлению этого числа в заданной ячейке памяти (1 байт, 2 байта..) 2310 =000101112 160710=00000110010001112 Обратный код положительного числа совпадает с прямым кодом положительного числа Дополнительный код положительного числа совпадает с прямым кодом этого числа
Кодирование целых отрицательных чисел Целые отрицательные числа хранятся в дополнительном коде
Кодирование отрицательных целых чисел Прямой код отрицательного числа равен прямому коду положительного числа и единица в старшем знаковом разряде. -2310=100101112 -160710=10000110010001112
Кодирование отрицательных целых чисел 100101112 – прямой код числа -2310 1000011001000111 – прямой код-160710 Обратный код отрицательных чисел поучается путём инверсии каждой цифры прямого кода числа и 1 в знаковом разряде. 111010002– обратный код числа -2310 11111001101110002– обратный код -160710
Кодирование отрицательных целых чисел Прямой код 100101112 – прямой код числа -2310 1000011001000111 – прямой код-160710 Обратный код 111010002 – обратный код числа -2310 11111001101110002– обратный код -160710 Дополнительный код отрицательного числа получается путём прибавления единицы к младшему разряду обратного кода отрицательного числа и 1 в знаковом разряде. Дополнительный код 111010012 – дополнительный код числа -2310 11111001101110012– дополнительный код -160710
Кодирование целых отрицательных чисел Хранятся в дополнительном коде • 1. перевод в 2 с.с – прямой код • 2. запись в ячейках памяти • 3. инвертирование – обратный код • 4. дополнительный код – прибавляем 1 бит. Пример: Представить число -1607 в памяти ПК в 2-х байтовом формате. 1.160710=110010001112 2.0000011001000111 3.1111100110111000 4. 1111100110111001 – дополнительный код
Кодирование вещественных чисел в 4-х байтовой ячейке. 1.перевод в 2 с.с 2. нормализование +(-)М*10р, где М- мантисса, р – порядок. 0<=p<=256, c учетом знака -127<=p<=128 Pм=Pис+127 3. мантисса в 23 битах. Неявный бит 1 не хранится в памяти.
Пример: Представить число -67 в памяти ПК в 4-х байтовом формате с плавающей точкой. • 10000112 • 1,000011*106 • 6+127=13310=100001012 • В 4-х байтовой ячейке 1 1000010100001100000000000000000 5. В 16 с.с. C286000016
Кодирование вещественных чисел «Типsingle» Значение переменной А = C286000016. Десятичное представление А равно __ ? 1)Представить в двоичном формате: C286000016 =1 10000101 000011000000000000000002 2)Т.к. в знаковом разряде 1, то число отрицательное 3)Определение машинного порядка М.П. = 30 ….23 биты 100001012=27+22+1=13310 4)Вычисление истинного порядка И.П.=М.П.-12710 И.П.=13310-12710 .=610 5)Выписать мантиссу, приписав единицу перед ней. 1,00001100000000000000000 6) Умножить мантиссу на 2 в истинном порядке (2И.П.), что означает перенос запятой вправо, если порядок положительный и влево, если порядок отрицательный на И.П . 1,00001100000000000000000*26=1000011,0000000… 7) Перевести полученное число из 2-ичной в нужную с.с. 10000112=26+21+1=67 8) Ответ -67