char buf[512];
int i;
if (buf[i] != (i & 0xff))
问题:i & 0xff结果会变成什么类型?
结果显示buf[i] = 0x80和 i = 0x80居然不相等,是不是符号的问题?
char buf[512];
int i;
if (buf[i] != (i & 0xff))
问题:i & 0xff结果会变成什么类型?
结果显示buf[i] = 0x80和 i = 0x80居然不相等,是不是符号的问题?
&是“位与操作符”,i&0xff使得i只剩下最低的8位值,而其它位均被值为0.
int的类型是不会变的,只是他的值变了。