Confusion in the use of byte variable A byte stores an 8-bit unsigned number, from 0 to 255.

I can understand the following line:

byte b = B10010;  // "B" is the binary formatter (B10010 = 18 decimal) 


But I also saw a use such as:

volatile byte state = LOW;


What does the last line mean here? Is that special for Arduino?
I mean LOW is not a 8 bit unsigned number. LOW is not a number here.
There is probably somewhere else, like this:

#define LOW 0


Which means the pre-processor turns your line from this:

volatile byte state = LOW;


into this:

volatile byte state = 0;


There is nothing arduino-specific here, just the use of standard C/C++ features.