C语言无符号数和有符号数的转换?解决方法

C语言无符号数和有符号数的转换?
代码如下:
C/C++ code
#include<stdio.h>
int main(void)
{
    int len = -4;
    unsigned len2 = 5;
    
    if(len - len2 >= 0)
        printf("%d\n", len * len2);
    else
        printf("0\n");
    
    return 0;
}


输出:
Assembly code
-20
请按任意键继续. . .

这是神马情况?

------解决方案--------------------
C/C++ code
    if(len - len2 >= 0)
        printf("%u\n", len * len2);//你应该用%u打印,而不是用%d打印