Renoir wrote: > Sorry for the question but i'm an absolutely noob > I have: > > byte x = 10; > byte y = 3; > x = x + y; > > why compilers complains? > > Error: cannot implicitly convert expression (cast(int)x + cast(int) > y > ) of type int to byte > > Have i to make another cast to sum byte + byte?
Yes, the compiler casts all operands to 'int' when performing arithmetics. You can explicitly cast it back, or you can do: x = (x+y) & 0xff; shorter, safer and nicer in general. If you compile with -O, this won't even have an overhead. Timon
