¿Qué es "!!" en C? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

!! c operador, es un dos NO? 4 respuestas

Me he encontrado con el siguiente fragmento de código:

pt->aa[!!(ts->flags & MASK)] = -val;
Que hace!! (signos de exclamación dobles / signos de exclamación / dos no operadores) representan en c?No es(!!NULL) == NULL ?