
Printf的符号扩展问题
当您使用 %x 格式符将 a 打印出来时,由于 a 是有符号整数,其在内存中存储的是一个 8 位的二进制补码,说人话:就是由于内存中保存整数是通过补码的形式来保存的,所以我们使用printf(%x)来打印时打印的是 对应变量的值的补码 ,但是由于printf的工作机制它需要将不管是有符号变量还是无符号变量的值的补码都强制转化成无符号的值的补码 这是为了方便将其转换成字符串然后在标准输出流中打印出来,这是就会出现问题有符号和无符号都强制转化成了无符号 那怎么保证打印出来的补码是正确的?










