Преобразование двух int в float - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Необходимо переписать следующую функцию на С++ под С#:
float convert_uint_to_float(unsigned int hw, unsigned int lw) {
        union {
          float f;
          unsigned short i[2];
        } convert_float_uint;
        convert_float_uint.i[0] = lw;
        convert_float_uint.i[1] = hw;
        return (convert_float_uint.f);
        }
Данная функция у меня была написана в Builder С++ полностью рабочая. Пробовал похожим образом переписать на C# с помощью структур ничего не выходить. Разъяснить пожалуйста.

Решение задачи: «Преобразование двух int в float»

textual
Листинг программы
[StructLayout(LayoutKind.Explicit)]
struct Float
{
    [FieldOffset(0)]
    public float f;
 
    [FieldOffset(0)]
    public ushort lw;
 
    [FieldOffset(sizeof(ushort))]
    public ushort hw;
 
    public Float(ushort lw, ushort hw)
    {
        f = 0;
        this.lw = lw;
        this.hw = hw;
    }
}
 
float ConvertToFloat(ushort lw, ushort hw)
{
    return new Float(lw, hw).f;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5