Я писал порт сетевой библиотеки из Java, и это последняя строка кода, которую я еще не расшифровал и не перешел. Строка кода выглядит следующим образом:C#, эквивалентный Java Float.floatToIntBits
Float.floatToIntBits(Float);
Что возвращает целое число.
Код floatToIntBits в Java
public static int floatToIntBits(float value) {
int result = floatToRawIntBits(value);
// Check for NaN based on values of bit fields, maximum
// exponent and nonzero significand.
if (((result & FloatConsts.EXP_BIT_MASK) ==
FloatConsts.EXP_BIT_MASK) &&
(result & FloatConsts.SIGNIF_BIT_MASK) != 0)
result = 0x7fc00000;
return result;
}
Я не столь опытный достаточно с памятью и шестнадцатеричные значения в порт этого по себе, не говоря уже о немного сдвигая это повсюду, что это было меня совершенно безумно.
Не знаете, зачем вам нужен такой код ... Не имеет ли у C# эквивалента «ByteBuffer» Java (который может определять endianness), который вы можете использовать вместо этого? Или 'Data * Stream'? Вы не делаете все операции с энтианностью вручную, не так ли? – fge
@fge - я преобразовываю сетевую библиотеку на C#, которая требует использования функций, поскольку она шифрует и дешифрует данные по-своему. – Hobbyist