1. Получить двоичную форму внутреннего представления целого числа в 2-х байтовой ячейке. 1450
2. Получить шестнадцатеричную форму внутреннего представления целого числа 2-х байтовой ячейке.
-1341
3. По шестнадцатеричной форме внутреннего представления целого числа в 2-х байтовой ячейке восстановить само число.
F700
4. Получить шестнадцатеричную форму внутреннего представления числа в формате с плавающей точкой в 4-х байтовой ячейке.
26.28125
5. По шестнадцатеричной форме внутреннего представления вещественного числа в 4-х байтовой ячейке восстановить само число.
45D14000
Решение:
1450 / 2 = 725, остаток 0
725 / 2 = 362, остаток 1
362 / 2 = 181, остаток 0
181 / 2 = 90, остаток 1
90 / 2 = 45, остаток 0
45 / 2 = 22, остаток 1
22 / 2 = 11, остаток 0
11 / 2 = 5, остаток 1
5 / 2 = 2, остаток 1
2 / 2 = 1, остаток 0
1 / 2 = 0, остаток 1
Перевернутые остатки: 10110101010
Таким образом, двоичная форма внутреннего представления числа 1450 в 2-х байтовой ячейке равна 10110101010.
2. Чтобы получить шестнадцатеричную форму внутреннего представления целого числа -1341 в 2-х байтовой ячейке, сначала необходимо перевести это число в двоичную форму, а затем разделить его на группы по 4 бита и преобразовать каждую группу в шестнадцатеричное число.
Решение:
1) Переводим число -1341 в двоичную форму: Поскольку число отрицательное, мы преобразуем его модуль в двоичный код и добавляем единицу к значению на единицу больше допустимого. Таким образом, мы получаем 0000010101100101.
2) Разбиваем двоичную форму на группы по 4 бита:
0000 0101 1011 0101
3) Преобразуем каждую группу в шестнадцатеричное число:
0 5 B 5
Таким образом, шестнадцатеричная форма внутреннего представления числа -1341 в 2-х байтовой ячейке равна 05B5.
3. Чтобы восстановить само число по шестнадцатеричной форме внутреннего представления целого числа F700 в 2-х байтовой ячейке, мы должны выполнить обратные шаги к шагам 2 и 3 предыдущего вопроса. То есть преобразовать каждую шестнадцатеричную цифру в бинарную форму и объединить их в одно число. Если число является отрицательным, возможно потребуется выполнить дополнительные шаги.
Решение:
1) Преобразуем каждую шестнадцатеричную цифру в бинарную форму:
F -> 1111
7 -> 0111
0 -> 0000
0 -> 0000
2) Объединяем полученные бинарные цифры в одно число:
1111011100000000
Таким образом, число, соответствующее шестнадцатеричной форме внутреннего представления F700 в 2-х байтовой ячейке, равно 1111011100000000.
4. Чтобы получить шестнадцатеричную форму внутреннего представления числа 26.28125 в 4-х байтовой ячейке формата с плавающей точкой, мы должны использовать стандарт IEEE 754 для представления чисел с плавающей точкой. Разбиваем число на знак, экспоненту и мантиссу.
Решение:
1) Определяем знак числа: 0 (положительное число).
2) Конвертируем дробную часть числа в двоичную форму:
0.28125 x 2 = 0.5625 -> 0
0.5625 x 2 = 1.125 -> 1
0.125 x 2 = 0.25 -> 0
0.25 x 2 = 0.5 -> 0
0.5 x 2 = 1.0 -> 1
Таким образом, двоичная форма дробной части числа 26.28125 равна 0.01011.
3) Суммируем дробную и целую части числа вместе и определяем позицию запятой:
26 -> 11010
0.01011
4) Определяем экспоненту и смещение:
Биты до точки = 5 (11010)
Смещение = 127 + 5 = 132 (в двоичной форме 10000100)
5) Переводим смещенную экспоненту в двоичную форму и заполняем недостающие нули:
10000100
6) Объединяем знак, смещенную экспоненту и мантиссу в одно число:
0 10000100 01011000000000000000000
7) Конвертируем полученное число в шестнадцатеричную форму:
0100 0010 0010 1100 0000 0000 0000 0000
Таким образом, шестнадцатеричная форма внутреннего представления числа 26.28125 в 4-х байтовой ячейке формата с плавающей точкой равна 422C0000.
5. Чтобы восстановить само число по шестнадцатеричной форме внутреннего представления вещественного числа в 4-х байтовой ячейке, мы должны выполнить обратные шаги к шагу 4. Нужно преобразовать каждую шестнадцатеричную цифру в бинарную форму и объединить их в одно число согласно стандарту IEEE 754 для представления чисел с плавающей точкой.
Решение:
1) Преобразуем каждую шестнадцатеричную цифру в бинарную форму:
4 -> 0100
2 -> 0010
2 -> 0010
C -> 1100
0 -> 0000
0 -> 0000
00 -> 00000000
2) Объединяем полученные бинарные цифры в одно число:
01000010001011000000000000000000
3) Разделяем полученное число на знак, экспоненту и мантиссу:
Знак: 0 (положительное число)
Экспонента: 10000100 (132 в десятичной системе)
Мантисса: 01011000000000000000000
4) Определяем значение дробной части числа, с учетом позиции запятой:
11010
5) Добавляем или удаляем нули изначально полученной мантиссы:
01011 0000 0000 0000 0000 0000
6) Суммируем целую и дробную части вместе:
11010.01011000000000000000000
7) Переводим полученное число обратно в десятичную форму:
26.28125
Таким образом, число, восстановленное из шестнадцатеричной формы внутреннего представления числа 45D14000 в 4-х байтовой ячейке, равно 26.28125.