This is two's complement numbers being used.
When converting down from varbinary to an integer data type you only get the last (least significant) byte. In this case the least significant bits are 1111 1110.
In tinyint with would equate to the decimal values : 128,64,32,16,8,4,2 => 254
With the signed SQL integer types then the most significant value is a negative of what you would expect. So for a smallint (2 bytes) the values are : -32768, 16384,8192,4096,2048,1024,512,256,128,64,32,16,8,4,2,1. In this format :
BINARY -> DECIMAL
0000000000000000 -> 0
1000000000000000 -> -32768
0111111111111111 -> 32767
1111111111111111 -> -1