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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2017, 23:16   #1
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию из С# в Delphi

Всем привет. Есть пару процедур чтения и записи данных которые необходимо перевести на делфи. Код примерно такого содержания. Жду предложений.


Код:

public class BitConverter
{
  public static long toInt64(byte b1, byte b2, byte b3, byte b4, byte b5, byte b6, byte b7, byte b8)
  {
    return (0xFF & b8) << 56 | (0xFF & b7) << 48 | (0xFF & b6) << 40 | (0xFF & b5) << 32 | (0xFF & b4) << 24 | (0xFF & b3) << 16 | (0xFF & b2) << 8 | 0xFF & b1;
  }

  public static int toInt32(byte b1, byte b2, byte b3, byte b4)
  {
    return (0xFF & b4) << 24 | (0xFF & b3) << 16 | (0xFF & b2) << 8 | 0xFF & b1;
  }

  public static float toFloat(int bits_)
  {
    return Float.intBitsToFloat(bits_);
  }

  public static double toDouble(long bits_)
  {
    return Double.longBitsToDouble(bits_);
  }

  public static double toDouble(byte b1, byte b2, byte b3, byte b4, byte b5, byte b6, byte b7, byte b8) {
    return toDouble(toInt64(b1, b2, b3, b4, b5, b6, b7, b8));
  }

  public static int putBytes(int value_, byte[] buffer_, int offset_)
  {
    buffer_[offset_] = ((byte)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 1)] = ((byte)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 2)] = ((byte)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 3)] = ((byte)value_);
    return 4;
  }

  public static int putBytes(long value_, byte[] buffer_, int offset_) {
    buffer_[offset_] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 1)] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 2)] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 3)] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 4)] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 5)] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 6)] = ((byte)(int)(value_ & 0xFF));
    value_ >>= 8;

    buffer_[(offset_ + 7)] = ((byte)(int)value_);
    return 8;
  }

  public static int putBytes(double value_, byte[] buffer_, int offset_)
  {
    return putBytes(Double.doubleToLongBits(value_), buffer_, offset_);
  }

  public static byte[] getBytes(int value_)
  {
    byte[] result = new byte[4];
    putBytes(value_, result, 0);
    return result;
  }

  public static byte[] getBytes(long value_) {
    byte[] result = new byte[8];
    putBytes(value_, result, 0);
    return result;
  }

  public static byte[] getBytes(double value_)
  {
    byte[] result = new byte[8];
    putBytes(value_, result, 0);
    return result;
  }
}
D_E_N вне форума Ответить с цитированием
Старый 20.03.2017, 00:22   #2
Igor[Игорь]
Пользователь
 
Аватар для Igor[Игорь]
 
Регистрация: 25.11.2011
Сообщений: 52
По умолчанию

igor23dec@yandex.ru
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP
Примеры http://igorvn.ucoz.ru/
Igor[Игорь] вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание модуля Delphi для поворота растровых изображений.delphi Romka62 Помощь студентам 1 18.11.2012 15:22
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 Elvisnya Общие вопросы Delphi 3 28.04.2011 15:59
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54