C言語の質問です:

↓のようなコードを書くとコンソールにはBが表示されます

if(4 < -1000){
   printf("A");
}else{
   printf("B");
}

ところが、↓のように4を(unsigned long)4に変えるとAが表示されます

if((unsigned long)4 < -1000){
   printf("A");
}else{
   printf("B");
}

理解できない・・・。
誰か教えてくださいm(_ _)m