a353249573 2016-11-08 02:36 采纳率: 50%
浏览 2234

int类型的数据&0xff会变成什么类型?

char buf[512];
int i;
if (buf[i] != (i & 0xff))

问题:i & 0xff结果会变成什么类型?

结果显示buf[i] = 0x80和 i = 0x80居然不相等,是不是符号的问题?

  • 写回答

3条回答 默认 最新

  • 尚书左仆射 2016-11-08 02:41
    关注

    &是“位与操作符”,i&0xff使得i只剩下最低的8位值,而其它位均被值为0.
    int的类型是不会变的,只是他的值变了。

    评论

报告相同问题?