Форум программистов, компьютерный форум CyberForum.ru

Объясните задачу про представление вещественных чисел в памяти компьютера - C++

Восстановить пароль Регистрация
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
25.11.2012, 00:03     Объясните задачу про представление вещественных чисел в памяти компьютера #1
Собственно знать как и что представляется в компе - необходимо, а особенно как представляются вещественные числа.

Как я рассуждаю:
1). в задачи речь идёт о типе float(вещественный, да и с 4-мя байтами. Это однозначно он)
2). я понял как вычислили число 127, но я понять не могу, почему именно 2127 (почему именно 2, а не 10?)
3). Вот тут у меня вообще тёмный лес: 223 – 1 ≈ 223 = 2(102,3) ≈ 10002,3 = 10(32,3) ≈ 107. (тут возможны ошибки, на скрине всё нормально написано).

Будьте добры объяснить новечку что и как/откуда тут берётся, буду крайне благодарен.


Скрин задачи прилагаю (там где не понятно выделил).
Объясните задачу про представление вещественных чисел в памяти компьютера
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 00:03     Объясните задачу про представление вещественных чисел в памяти компьютера
Посмотрите здесь:

Представление вещественных чисел!!!!С++ C++
Представление отрицательных вещественных чисел C++
Объясните пожалуйста задачу C++
Представление целых и вещественных чисел. Основные арифметические и логические операции. C++
Объясните задачу пожалуйста C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 01:38     Объясните задачу про представление вещественных чисел в памяти компьютера #2
в памяти все хранится в двоичной системе, поэтому логично, что 2, а не 10
порядок - это степень, в которое возводится основание системы счисления. основание 2. поэтому 2^127
теперь по поводу мантиссы. там 24 бита. 1 бит это знак. остается 23 бита. сколько разных чисел можно получить с их помощью? 2^23. очевидно, одно из чисел будет нулем. следовательно, наибольшее число 2^23 - 1. минус единицей можно пренебречь для упрощения дальнейших расчетов.
далее 23=10*2.3
возведем 2 в степень 10. получим 1024. это примерно равно 1000. пишем 1000 для упрощения.
очевидно 1000=10^3
получаем 10^(3*2.3) = 10^(6.9)
округляем степень до 7
qwertun
6 / 6 / 1
Регистрация: 22.12.2012
Сообщений: 446
03.09.2013, 21:45     Объясните задачу про представление вещественных чисел в памяти компьютера #3
а можна пример программы на С++ или С# в которой будет показано вид переменной float в памяти компьютера?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
03.09.2013, 21:53     Объясните задачу про представление вещественных чисел в памяти компьютера #4
C++
1
2
3
4
5
float a=10.0;
 
unsigned char *b=&a;
for(int i=0;i<sizeof(float)/sizeof(char);i++)
   printf("%x",b[i]);
примерно так
Yandex
Объявления
03.09.2013, 21:53     Объясните задачу про представление вещественных чисел в памяти компьютера
Ответ Создать тему
Опции темы

Текущее время: 00:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru