Why/How does this work?
I know that if I want to convert a signed byte (ie 0x7F) to unsigned
number I can promote it to an integer, like this:
byte a = (byte)0xAB; // -85
int b = a & 0xFF; // 171
The bit pattern is 10101011 (0xAB)
If I AND it with 11111111 (0xFF)
The result is 10101011
ie. the same number! so why does this change the number to an unsigned
(positive) number?
I know that if I want to convert a signed byte (ie 0x7F) to unsigned
number I can promote it to an integer, like this:
byte a = (byte)0xAB; // -85
int b = a & 0xFF; // 171
The bit pattern is 10101011 (0xAB)
If I AND it with 11111111 (0xFF)
The result is 10101011
ie. the same number! so why does this change the number to an unsigned
(positive) number?
Comment