Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2016, 17:17   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

4526E0CD - в памяти будет CDE02645
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.11.2016, 21:45   #12
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Пробуем представить положительное число 2670,05 в двоичном виде:
Код:
267010 = 1010011011102
0.05 *2 = 0.1 => 0.02
0.1*2 = 0.2 =>0.002
0.2 *2 = 0.4 =>0.0002
0.4*2 = 0.8 => 0.00002
0.8*2 = 1.6 => 0.000012
0.6*2 = 1.2 => 0.0000112 дробь периодическая.
Код:
267010 = 101001101110.000011000011...
При нормализации точку надо сдвинуть влево на 1110.
Т.е экспонента:
Код:
12710+(-1110) = 11610 =011101002
Имеем: Знак числа - 0; Экспонента - 01110100; Мантисса - 01001101110.000011000011...
Или:
Код:
Байт 1   Байт 2   Байт 3   Байт 4
00111010 00100110 11100000 11000011 ...
Перевод A2 в Hex делается просто. Байт разбивается на ниблы и каждый нибл записывается в Hex. Т.о. получаем:
3A 26 E0 C2.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 29.11.2016, 22:59   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Только сдвиг с плюсом, а не с минусом -> порядок = 138(10)
и потом мантисса сдвигается влево на 1 бит вытесняя первую 1, она типа в уме и получаем 4526E0CС. Процессор округлит до 4526E0CD
И типа проверочки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
type TByte4 = array[0..3] of Byte;
var r: Single;
    p: ^TByte4;
    i: Integer;
    s: String;
begin
  r:=2670.05;
  p:=@r;
  s:='';
  for i:=0 to 3 do s:=s+IntToHex(p^[i],2);
  Edit1.Text:=s;  // CDE02645 -> 4526E0CD
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 29.11.2016 в 23:01.
Аватар вне форума Ответить с цитированием
Старый 30.11.2016, 19:30   #14
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Спасибо!
Это я уже ...

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открыть файл с расширением .pas ми подсчитать сколько в памяти занимают переменные типа Integer бипбип Помощь студентам 3 16.05.2012 22:10
Модификация оперативной памяти компьютера - как это лучше сделать? Shoggot Компьютерное железо 6 21.11.2011 17:01
Программа для тестирования памяти, тестирование ячеек памяти Hunter557 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 30.01.2011 19:20
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти ]tach[ Общие вопросы C/C++ 1 19.01.2011 13:16
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56