Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_po_lektsiam_6_9.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
351.23 Кб
Скачать
  1. Логическое представление в компьютере целых чисел (с примерами) (л.8) .

Логическое представление целых положительных чисел:

  • Исходное целое число переводится в 16-ичную систему счисления (чтобы сократить количество операций деления).

  • Полученное число из 16-ичной системы счисления переводится в 2-ичную систему счисления (каждый 16-ичный знак заменяется соответствующей ему тетрадой двоичных чисел).

  • Записываем двоичное представление числа:

  • Последовательно в битах справа налево записывается полученное двоичное представление числа.

  • В крайнем слева бите записывается знак числа – в данном случае 0.

Логическое представление отрицательных целых чисел (представление в дополнительном двоичном коде):

  • Исходное число рассматривается как положительное и переводится в 16-ичную систему счисления.

  • Полученное число из 16-ичной системы счисления переводится в 2-ичную систему счисления.

  • Полученное представление числа инвертируется (нули заменяются единицами, а единицы – нулями).

  • К полученному представлению добавляется 1 в самый младший разряд.

  • Записываем двоичное представление числа:

  • Последовательно в битах справа налево записывается полученное двоичное представление числа.

  • В крайнем слева бите записывается знак числа – в данном случае 1.

  1. Логическое представление в компьютере вещественных чисел (с примерами) (л.8) .

Вещественное число в представлении с плавающей точкой записывается в виде мантиссы и порядка:

A= M*q+p, где M – мантисса числа, обычно 0< M< 1; q – основание системы счисления, p – порядок числа.

12345. (целое число) 1.2345*104

1.2345 (неправильная дробь) 0.012345 (правильная дробь) 0.12345 (правильная дробь)

12.345*10-1 12345*10-6 123450*10-6

Представление вещественных чисел с плавающей точкой служит для хранения в памяти целых и дробных чисел. Раньше числа с плавающей точкой хранились в компьютере в виде нормализованной мантиссы и порядка. Нормализованная мантисса – это правильная дробь, у которой первая цифра после точки отлична от нуля. Сегодня это представление немного изменено.

Общий вид представления чисел в форме с плавающей точкой:

знак числа

знак порядка

порядок

нормализованная мантисса

изменен на:

знак числа

характеристика

усеченная мантисса

Если двоичное представление числа преобразовать таким образом, чтобы целая часть его стала содержать всего одну единицу, то число, получившееся после запятой, есть усеченная мантисса. При этом изменяется и порядок числа (он увеличивается или уменьшается соответственно количеству перемещений позиции запятой влево или вправо) и становится усеченным порядком. Характеристика это число, полученное от сложения усеченного порядка с числом 7F (для 4-хбайтного представления) или 3FF (для 8-ибайтного представления)2.

Алгоритм получения логического представления числа с плавающей точкой:

  • Исходное число переводится в 16-ичную систему счисления (отдельно целая и дробная части).

  • Полученное представление числа в 16-ичной системе счисления преобразуется в его представление в 2-ичной системе счисления.

  • 2-ичное представление числа преобразуется для получения усеченной мантиссы и усеченного порядка.

  • Записывается двоичное представление числа:

  • в первом слева бите записывается знак числа (0 – для положительных чисел или 1 – для отрицательных);

  • в следующих 8 битах слева направо (для 4-хбайтного представления) или 11 (для 8-ибайтного представления) записывается характеристика;

  • в оставшихся битах записывается усеченная мантисса (слева направо): под нее отводится 23 бита для 4-хбитного представления: (4*8=32 – 1 знаковый бит – 8 бит под характеристику = 23 бита) и 52 бита для 8-байтного представления (8*8=64 – 1 знаковый бит – 11 бит под характеристику = 52 бита).

Например:

-256,510 = ?

25610 = 010016 =1 0000 00002

0,510 = 0.816 = 0.10002

  1. Внутреннее представление величины целого типа со спецификатором unsigned (л.8) .

  2. Объяснить получение результатаi*:

    1. printf ("%d\n", char(2&123)); 2

    2. printf ("%u\n", char(2&123)); 2

    3. printf ("%d\n", int(2&123)); 2

    4. printf ("%u\n", int(2&123)); 2

    5. printf ("%d\n", unsigned(2&123)); 2

    6. printf ("%u\n", unsigned(2&123)); 2

  1. Объяснить получение результата*:

    1. printf ("%d\n", char(~11)); -12

    2. printf ("%u\n", char(~11)); 4294967284

    3. printf ("%d\n", int(~11)); -12

    4. printf ("%u\n", int(~11)); 4294967284

    5. printf ("%d\n", unsigned(~11)); ?

    6. printf ("%u\n", unsigned(~11)); ?

  1. Объяснить получение результата*:

    1. printf ("%d\n", char(11 & 2)); 2

    2. printf ("%u\n", char(11 & 2)); 2

    3. printf ("%d\n", unsigned char(11 & 2)); 2

    4. printf ("%u\n", unsigned char(11 & 2)); 2

    5. printf ("%d\n", int(11 & 2)); 2

    6. printf ("%u\n", int(11 & 2)); 2

    7. printf ("%d\n", unsigned(11 & 2)); 2

    8. printf ("%u\n", unsigned(11 & 2)); 2

  1. Объяснить получение результата*:

    1. printf ("%d\n", char(11 | 2)); 11

    2. printf ("%u\n", char(11 | 2)); 11

    3. printf ("%d\n", unsigned char(11 | 2)); 11

    4. printf ("%u\n", unsigned char(11 | 2)); 11

    5. printf ("%d\n", int(11 | 2)); 11

    6. printf ("%u\n", int(11 | 2)); 11

    7. printf ("%d\n", unsigned(11 | 2)); 11

    8. printf ("%u\n", unsigned(11 | 2)); 11

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