Прямой код

advertisement
Представление
информации в памяти
компьютера
Кодирование символов
• 1 символ – 1 байт (8 бит)
Найти количество различных символов,
закодированных байтами в сообщении.
1011100011100111101110001001111100111001
Разбиваем на байты
10111000.11100111.10111000.10011111.
00111001
Исключаем повторяющиеся 10111000
Различных 4 символа.
Кодирование графики
• Объем графического изображения
V=n*i ,
где n –количество пикселей,
i- количество бит на 1 пиксель.
• N=2i
Кодирование звука
• Объем звукового файла равен
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 не
хранится в памяти.
Знак
0(1)
Порядок
машинный
– 8 бит
Мантисса (23 бита)
Пример: Представить число -67 в памяти
ПК в 4-х байтовом формате с плавающей
точкой.
1. 10000112
2. 1,000011*106
3. 6+127=13310=100001012
4. В 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
Download