2004-gre-cs-practice-book.pdf/Q22 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
Строка 1: Строка 1:
{{reserve-task|[[Участник:Urmat A|Urmat A]] 12:22, 20 декабря 2024 (UTC)}}
+
{{reserve-task|[[Участник:Urmat A|Urmat A]] 12:30, 20 декабря 2024 (UTC)}}
 
== Вопрос: Q22-4c9f66 ==
 
== Вопрос: Q22-4c9f66 ==
  
Строка 27: Строка 27:
 
S = b_[:1]
 
S = b_[:1]
 
E = b_[1:9]
 
E = b_[1:9]
F = b_[9:]
+
F = b_[9:] #было [10:], что пропускало единицу
 
S, E, F
 
S, E, F
 
</code-python>
 
</code-python>

Версия 12:30, 20 декабря 2024

Задача зарезервирована: Urmat A 12:30, 20 декабря 2024 (UTC)

Вопрос: Q22-4c9f66

Согласно стандарту IEEE, 32-разрядное число с плавающей запятой одинарной точности N определяется как

где S — знаковый бит, F — дробная мантисса, а E — смещенный показатель степени

Число с плавающей запятой хранится в формате S : E : F, где S, E и F хранятся в 1 бите, 8 битах и 23 битах соответственно.

Каково десятичное значение числа с плавающей запятой C1E00000 (шестнадцатеричная система счисления)?

Ответы

  • 26
  • −15
  • −26
  • Правильный ответ: −28
  • −59

Объяснение

Ну, считаем поля на глаз:

b_ = bin(0xC1E00000)[2:]
S = b_[:1]
E = b_[1:9]
F = b_[9:] #было [10:], что пропускало единицу
S, E, F
('1', '10000011', '11000000000000000000000')

Видно, что-то отрицательное,

Показатель 4.

 print(0b10000011-127)
 print(0b11000000000000000000000)2097152
1.2097152**4 = 2.1415713601250426

Надо разобраться, где-то накосячил.


Исходники — вопрос 22 на 21 странице книги «2004-gre-cs-practice-book.pdf»