ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 июля
898918 Топик полностью
Dingo (25.01.2019 06:43 - 07:57, просмотров: 111) ответил VLLV на Сдвиг на 32 точно работает ?
Да. Распинал и на остальное: 
	uint64_t val1, val2;
	val1 = (uint64_t)op1.fraction + ((uint64_t)op1.seconds<<32);
	val2 = (uint64_t)op2.fraction + ((uint64_t)op2.seconds<<32);
	return( val1>=val2);
Ну или так наверное можно(не проверял):
val1 = ((uint64_t)op1.seconds<<32) + op1.fraction;
Однако переполнение и умножение, результат которого занимает сумму сумму бит сомножителей, всё ещё интересно. Пытаюсь найти аппнот по фиксированной точке от Техаса, где подобное было - не могу найти! :-( По сложению только следующий костыль пока придумал: запоминать максимальное из слагаемых, и если результат меньше, то переполнение было. Но операций это добавляет ... Умножение, мысли:
   A3A2.A1A0
   B3B2.B1B0
-------.--------
       .A3A2A1A0 * B0
     A3.A2A1A0   * B1
   A3A2.A1A0     * B2
 A3A2A1.A0       * B3
=================