User Tag List

Показано с 1 по 10 из 24

Тема: Игра "Королевство Эйфория" для УКНЦ, восстановление исходника

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    А есть какой-то калькулятор, чтобы подставил туда два восьмеричных числа - и на тебе плавающее число в привычной записи?
    Если только написать самому.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    А есть какой-то калькулятор, чтобы подставил туда два восьмеричных числа - и на тебе плавающее число в привычной записи?
    Цитата Сообщение от Alex_K Посмотреть сообщение
    Если только написать самому.
    Набросал начерновую:

    Скрытый текст

    Код:
    #include <stdio.h>
    void main(void)
    {
     unsigned short O1, O2;
     short exp;
     unsigned long mant, scmant;
     long double res, sres;
     while (1)
      {
       printf("#>");
       scanf("%ho %ho", &O1, &O2);
       printf("%ho %ho\n", O1, O2);
       mant = ((((unsigned long)O1 << 16) | O2) & 0x7FFFFFL) | 0x800000L;
       exp = (O1 >> 7) & 0xFF; exp -= 128;
       printf("%hi %lX\n", exp, mant);
       scmant = 0x800000L; sres = 0.5; res = 0.0;
       while (scmant != 0)
        {
         if ((scmant & mant) != 0) res += sres;
         scmant >>= 1; sres /= 2;
        }
       while (exp != 0)
        {
         if (exp < 0)
          {
           res /= 2; exp++;
          }
         else
          {
           res *= 2; exp--;
          }
        }
       if ((O1 & 0x8000) != 0) res = -res;
       printf("%Lg\n",res);
      }
    }
    [свернуть]

    Эти 2 пользователя(ей) поблагодарили Alex_K за это полезное сообщение:

    anasana(25.04.2021), nzeemin(25.04.2021)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 247
    Последнее: 17.11.2024, 07:55
  2. Корпус для адаптера дисковода для УКНЦ
    от tnt23 в разделе ДВК, УКНЦ
    Ответов: 1
    Последнее: 25.06.2020, 00:22
  3. Ответов: 55
    Последнее: 20.06.2020, 10:41
  4. Восстановление мембраны для клавиатуры.
    от Shnurkov в разделе Устройства ввода
    Ответов: 37
    Последнее: 09.08.2017, 20:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •