Fact: Whenever you 'promote' something, no information is lost. (Take care while converting int to float and long to double, because float and double by nature are less precise than int and long resp.) Now the answers are easy. if b is -1 ( 11111111 ) then i will also be -1 ( ie 111....) if b is 01100010 then i will be 00000000 00000000 00000000 01100010 Excercise: what happens if you are trying to promote char c = 0xffff to int? ( Note that char is always positive ). HTH, Paul.