Если вы знаете, что ваш код выполняется на процессоре, использующем представление IEEE, вы можете проверить, соответствует ли битовый шаблон бесконечности, которая равна всем «1» в поле экспоненты. Иными словами, вы можете поразрядно - и число с 0x7ff0000000000000, и проверить, равно ли оно этому числу. Если это так, вы можете проверить, равны ли младшие биты нулю или нет. 0 обозначает бесконечность, а не 0 обозначает NaN. Вам нужно выполнить приведение к 64-битному типу для сравнения.
Все это предполагает, что вы используете числа с плавающей запятой двойной точности, и что вы можете сделать, может привести к 64-битному целочисленному типу. Если вы не можете привести к 64-битному режиму, вам нужно беспокоиться о проблемах с порядком байтов. Это похоже на операции с плавающей запятой одинарной точности, хотя вы приводите 32-битное целое число и используете константу 0x7f800000. Для четверной точности это похоже, но сложнее, потому что вам нужно беспокоиться о порядке байтов, потому что нет 128-битного целочисленного типа, который легко вставить в ваш код. Константа, по которой вы проверяете, отличается, но может быть выведена из спецификации IEEE 754.