need clarification with ! (not) function

Ok.

C provides >, <, ==, !=, <= and >= to compare numbers.
C provides parenthesis for grouping
C provides !, &&, and || to combine logical operators.
There isn't a range function like "5 <= x <= 70" to check if x is between 5 and 70.

So, to check if a number is between 5 and 70, you use

(x >= 5) && (x <= 70)

To check the converse of this, x isn't between 5 and 70 (inclusive)

! ((x >= 5) && (x <= 70))

Now, you need to know DeMorgan's laws of boolean algebra. They are (using C language operators)

! (A && B) is the same as !A || !B, and
! (A || B) is the same as !A && !B.

Thus

! ((x >= 5) && (x <= 70))

Is the same as

(!(x >= 5) || !(x <= 70))

But the negation of "greater than or equal to" is "less than". So this can be rewritten as

(x < 5) || (x > 70)

"if x is less than five or greater than seventy, light the LED".

if(x < 5 || x > 70) {
  light_the_LED();
}