A whole, real number is anything on the number line that isn't a fraction, complex, imaginary, or irrational number. BEX and SecondBASIC both use 16 bit unsigned integers. That means you can't return a negative number, only positive.
16 bit unsigned means the value range can only be between 0 and 65,535. If they were signed integers, the new min-max would be shifted to -32,767 to 32,767.
Now, you can still assign negative numbers (the Mega Drive does support signed variables, just BEX and SecondBASIC don't utilize them, and I'm not 100% convinced it's required, though would be useful... *ahem*).
If you do this:
a = -1 Print a
you'll get an output of 65535.
If you absolutely need to display a negative number, you can do something like the following:
a = -8 b = 65535-a+1 Print "-";b
Long integers work the same way as integers, except they're twice as big (32 bits) which gives you a value range from 0 to 4,294,967,295. You can assign an integer value to a long integer variable (because it has enough space for it, though it needs to be 0'd out so no left over data is in the memory range), but you can't fit a long integer into a regular integer.