cout 在输出unsigned char 部类数据时不对

cout 在输出unsigned char 类型数据时不对
主程序如下

int main( )  

  unsigned char dat[50];
   int i;
  dat[0]=0x01;
 dat[1]=0x03;
 dat[2]=0x00;
 dat[3]=0x00;
 dat[4]=0x00;
 dat[5]=0x01;
for(i=0;i<6;i++)
{
    cout<<int(dat[i])<<" ";//输出正确
//cout<<(dat[i])<<" ";//输出错误,不解,难道没有对  unsigned cha 类型r数据重载
}
cout<<endl;
return 0;  
}  
------解决方案--------------------
cout  对 unsigned char 和 int 的处理方式是不一样的。
没有什么对与错。