Unary operators take one argument. In LSL these arguments are normally integers.
|variable++||Arithmetic||post-increment||variable||variable is set to variable + 1|
|++variable||Arithmetic||pre-increment||variable + 1||variable is set to variable + 1|
|variable–||Arithmetic||post-decrement||variable||variable is set to variable – 1|
|–variable||Arithmetic||pre-decrement||variable – 1||variable is set to variable – 1|
|!variable||Logical||Logical NOT||1 if variable is 0, otherwise 0||None|
|-variable||Arithmetic||Unary negation||negative value of variable||None|
|~variable||Bitwise||Bitwise NOT||flips each bit of variable||None|
integer x = 5; llSay(0, (string)(x++)); //Says "5" and x is set to 6
integer x = 5; llSay(0, (string)(++x)); //Says "6" and x is set to 6
Credit to: Lslwiki.net (not working) with changes made for brevity and clarity.