异或表达式作为条件语句的问题

int count=10;
for(int i=0;i^count!=0;i++)
{
cout<<i<<endl;
}

for(int i=0;(int)(i^count)!=0;i++)
{
    cout<<i<<endl;
}

如上 第一个for循环只能循环一次 第二个能正常循环10次
这是为什么ne

图片说明
就是个优先级的问题,!=优先级比^高,链接
其次true和false会自动转化为1和0参与其他运算。