Paul Benedict wrote: > byte b1 = 0xFF; > byte b2 = 3; > > Can someone explain to me why this shouldn't straight compile? Because 0xFF is equivalent to 255 which is outside the range of byte. Compare with byte b1 = 0xFFFFFFFF; It is a consequence of the (unfortunate) choice of bytes as signed. Mark