C++的static_cast强制转换后的结果?

请教各位前辈,我打算做的是输入一个数,然后输出这个数的绝对值。
我是通过static_cast强制转换输入的数值,然后输出。
但是我这里输入的是-10,但是输出的是一个很奇怪的数。
请问这是什么原因?
代码和运行结果

跟static_cast没关系,你直接unsigned num = -10得到的还是这一串数
也就是‭FFFFFFF6‬,二进制是‭11111111111111111111111111110110‬
unsigned表示-1就是是FFFFFFFF,因为计算机不认识正数负数,计算机把负数是用补码存储的.如果你把-10当成unsigned int看就是0xFFFF FFF6