Здравствуйте, Jenyay, Вы писали:
S>>Да и вариантные структуры никто не отменял (FieldOffset)
J>Интересно. То есть этот аттрибут (FieldOffsetAttribute) делает так, что элемент класса начинается не по положенному ему месту а по указанному?
Да.
J>Впринципе, мне это надо для скрещивания хромосом. Хотел просто чтобы у ребенка было бы часть бит (допустим первая) от 1-го родителя, а часть от 2-го. Нв С++ я бы сделал ассемблерными вставками. Может есть лучшее решение? Не хотелось бы использовать числа с фиксированной точкой. Есть еще идея отдельно скрещивать отдельно целые части (таким образом) как целые числа и дробные, умноженные перед этим на большое число (35000), чтобы тоже получилось целое число. Хотя таким образом до double не дотянуть, а до float можно.
Насколько я помню double в Net 64 бита (
http://www.rsdn.ru/Forum/Message.aspx?mid=375145&only=1Автор: WolfHound
Дата: 05.09.03
) и структура типа
public struct DoubleOrUInt64
{
[FieldOffset(0)]
UInt64 IntValue;
[FieldOffset(0)]
double DoubleValue;
}
В Net можно работать можно применять побитовые операции и с Int64 (но мне больше нравится UInt64)
Правда жалко, что Extended забыли.
... << RSDN@Home 1.1.0 stable >>