Бухгалтерия / Говнокод #13014 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
// Преобразует целое десятичное число (как вариант представления двоичного числа) в вещественное
Функция ПреобразоватьВЧисло(Знач ДесятичноеЧисло = 0, Точность = 1) Экспорт
	
	СчБитов 	= 0;
	Мантисса 	= 1;
	Экспонента 	= ?(Точность = 2, -1023, -127);
	Знак 		= 1;
	
	ГраницаМантиссы   = ?(Точность = 2, 52, 23);
	ГраницаЭкспоненты = ?(Точность = 2, 63, 31);
	
	Пока ДесятичноеЧисло >= 1 Цикл
		
		Частное = Цел(ДесятичноеЧисло / 2);
		Остаток = ДесятичноеЧисло % 2;
		
		Если СчБитов < ГраницаМантиссы Тогда
			Мантисса = Мантисса + Остаток * Pow(2, СчБитов - ГраницаМантиссы);
		ИначеЕсли СчБитов < ГраницаЭкспоненты И СчБитов > ГраницаМантиссы - 1 Тогда
			Экспонента = Экспонента + Остаток * Pow(2, СчБитов - ГраницаМантиссы);
		Иначе
			Знак = ?(Остаток = 1, -1, 1);
		КонецЕсли;
		
		ДесятичноеЧисло = Частное;
		СчБитов	= СчБитов + 1;
		
	КонецЦикла; 
		
	Возврат Знак * Мантисса * Pow(2, Экспонента);

КонецФункции

Запостил: TamerlanDE TamerlanDE, (Updated )

Комментарии (11) RSS

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8