无符号型减法计算公式,结果不同?

无符号型减法计算公式,结果不同?

    int32_t a,b;
    uint32_t i; 
    float32_t f;

        i = 100;
        f = 0.5;
        
        a = 0 - i + f;
        b = 0 - 100 + f;
        keil运行结果如下,为什么会是0呢?
        
//        a = 0x00000000;

//        b = 0xFFFFFF9D;

a是整形的,结果被强制转换了