C++怎么识别正数负数

C++如何识别正数负数?
C/C++ code

int a=0xffffffff;
unsigned b=a;
int c=-1;





结果a=c=-1;b为正数
a b c在内存中的数据完全相同,请问程序是怎么识别它们是正数还是负数的?截图如下:






------解决方案--------------------
探讨
若不看源码,是断然无法知道[ebp-0Ch],[ebp-10h]处的数据类型的,可是程序却可以分别前一处地址的是int型,后一处地址的是float型,这不是很奇怪么?