@sambly

Каким образом можно сделать циклический сдвиг битов float (double)?

Нужно сделать циклический сдвиг для типа данных float (double) в заданном направлении, не понимаю, посредством чего это делается, через указатели пытался - не получается. Может, как нибудь через union, пытался но не получается.
  • Вопрос задан
  • 3465 просмотров
Пригласить эксперта
Ответы на вопрос 1
@werktone
Циклический сдвиг битового представления или самого числа? Если второе, то банально делением / умножением. А если первое, то да, можно через union. Если у вас на машине double и long long одинакового размера, то такой код будет работать:
#include <stdio.h>
union double_long_long 
{
	double dbl;
	unsigned long long ull;
};
int main(void) {
	printf("%d %d\n", sizeof(double), sizeof (unsigned long long));	
	union double_long_long u;
	u.dbl = -12344235235325235.3252352352938598325982359935289;
	u.ull = u.ull >> 1;
	printf("%lf\n", u.dbl);
	return 0;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы