i guess in the above statement casting is requried. so is it like any arthmetic or boolean operation performed on int or smaller than int requries a cast.
That is correct. All arithmetic operations result in at least an int, so when performing an operation on two bytes, the result is still an int and you need to perform a cast to get it back into another byte.