基础的知识点,不理解,想寻求解析

printf("%#x\n",-10);输出结果0xfffffffb,不懂为啥,希望哪位大神给我讲讲

c语言%#x是指带格式的16进制输出

-10是一个32bit表示的整数,我们可以看到:

img
下面的数字就是-10在计算机中真实储存的二进制数,转换成16进制,4bit写成一个数,就是8位16进制数

img